Django ForeignKey Problem

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Oxygen
User
Beiträge: 4
Registriert: Freitag 12. März 2010, 11:23

Hallo liebe Python Community,

ich habe da ein kleines Problem / Frage...
Kann ich in ein model mir 2 ForeignKeys ziehen?
z.B. ich will bei einer Person die passende Frima mir anzeigen + die Firma soll zusätzlich noch die PLZ drin stehen haben.

Peter Lustig
Computer AG Lustig, 01345

Code: Alles auswählen

company = models.ForeignKey(Company,null=True,blank=True,verbose_name='Firma')
Das ist die Firma, die wird als ein Dropdownmenü im Adminbereich angezeigt, wie bekomme ich jetzt noch die PLZ in das dropdown menü? Die steht auch in Company unter Town.
Geht das überhaupt?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo Oxygen, willkommen im Forum,

Indem du die entsprechenden Methoden (``__unicode__``, ggf. ``__repr__``) von ``Company`` überschreibst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Oxygen
User
Beiträge: 4
Registriert: Freitag 12. März 2010, 11:23

Danke erst mal, in Company zeigt er mir es nun richtig an.

Code: Alles auswählen

def __unicode__(self):
        return self.name+', '+self.town
So hab ich das geschrieben.

Aber wenn ich dann in Person rein gehe macht er mir folgenden Fehler:
TemplateSyntaxError at /admin/Person/person/

Caught an exception while rendering: coercing to Unicode: need string or buffer, NoneType found

Original Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/django/template/debug.py", line 71, in render_node
result = node.render(context)
File "/usr/lib/python2.5/site-packages/django/template/__init__.py", line 936, in render
dict = func(*args)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/templatetags/admin_list.py", line 253, in result_list
'results': list(results(cl))}
File "/usr/lib/python2.5/site-packages/django/contrib/admin/templatetags/admin_list.py", line 248, in results
yield list(items_for_result(cl, res, None))
File "/usr/lib/python2.5/site-packages/django/contrib/admin/templatetags/admin_list.py", line 181, in items_for_result
result_repr = escape(getattr(result, f.name))
File "/usr/lib/python2.5/site-packages/django/utils/functional.py", line 251, in wrapper
return func(*args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/utils/html.py", line 36, in escape
return mark_safe(force_unicode(html).replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"').replace("'", '''))
File "/usr/lib/python2.5/site-packages/django/utils/encoding.py", line 71, in force_unicode
s = unicode(s)
File "/Company/models.py", line 62, in __unicode__
return self.name+', '+self.town
TypeError: coercing to Unicode: need string or buffer, NoneType found
mache ich das ganze mit

Code: Alles auswählen

def __repr__(self):
        return self.name+', '+self.town
gibts keine Fehlermeldung aber dafür heißt nun jede Firma Company Object.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Oxygen hat geschrieben:TypeError: coercing to Unicode: need string or buffer, NoneType found
Eines der Teile die zu zusammen baust ist None... Und das funktioniert nicht:

Code: Alles auswählen

print "Bla" + None

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten