Don't use the internal method, instead do unicode(self.location_type)
+ ' - '

On Jun 6, 9:27 pm, "M.Ganesh" <[EMAIL PROTECTED]> wrote:
> Rajesh Dhawan wrote:
>
> >> 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
>
> Thanks everybody, the following worked:
>             retval = self.location_type.__unicode__() + ' - '
>
> Emily & Rajesh:
> This is my first django project and I was  eager to have it up and
> running. Sure I'll read up on coding conventions and change my code
> accordingly. Thanks once again
>
> Regards Ganesh
--~--~---------~--~----~------------~-------~--~----~
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