> My model :
>
> class phonenumber(models.Model):
>     location_type = models.ForeignKey(location_type)
>     location_description = models.CharField(max_length=50, blank=True)
>
>     def __unicode__(self):
>         if self.location_description:
>             retval = self.location_description + ' - '
>         else:
>             retval = self.location_type + ' - '
>         return retval
>
>     class Meta:
>         app_label = 'contacts'
>
> I get an error saying :
> TypeError at /contacts/phonenumber/
> unsupported operand type(s) for +: 'location_type' and 'str'
>
> How do I get the location_type __unicode__ for the fk?

Emily's suggestion of renaming your ForeignKey to LocationType is a
good one. If you want to follow more well-defined conventions while
coding in Python look at PEP 8 here: http://www.python.org/dev/peps/pep-0008/

Adding __unicode__ or __str__ methods to your location_type class is
not sufficient for the above to work because the + operator can not be
used in this way where location_type is not a string.

Here are ways that would work:

retval = unicode(self.location_type) + ' - '
retval = '%s-' % self.location_type

For these two snippets to work 'correctly', you should define
__unicode__ on your location_type model class. The two snippets above
will still work without this method, but you will get Python's
internal representation of location_type.

For a better understanding of this look at __repr__, __str__, and
__unicode__ here: http://docs.python.org/ref/customization.html

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to