heya,

I have a small Django app that contains a list of Df (disk-free)
reports.

"DfReport" has a ForeignKey to "Filesystem" model, which has a
ForeignKey to "Device". (i.e. Devices has filesystems, each filesystem
has a DfReport).

I'm getting an error in the admin when I attempt to display the
list_display page for a "DfReport" model.

    TemplateSyntaxError at /admin/report/dfreport/add/
    Caught TypeError while rendering: coercing to Unicode: need string
or buffer, Device found

I've traced the error to the __unicode__ method for one of the
ForeignKey fields on DfReport being displayed.

The issue is, Filesystem has __unicode__ set to print the server on
which it's reporting. Using the following causes the
TemplateSyntaxError:

    class Filesystem(models.Model):
        name = models.CharField(max_length=50)
        #description = models.CharField(max_length=100)
        description = models.TextField()
        server = models.ForeignKey(Device)

        def __unicode__(self):
            return self.name + ' on device ' + self.server

However, if I change self.server to "self.server.name", it works. The
weird thing is - Device (which server points to), has a __unicode__
method defined as well. Shouldn't calling self.server just use the
__unicode__ method on Device, instead of needing me to explicitly call
self.server.name?

    class Device(models.Model):
        name = models.CharField(max_length=50)
        #description = models.CharField(max_length=100)
        description = models.TextField()
        location = models.ForeignKey(Location)

        def __unicode__(self):
            return self.name

        class Meta:
            ordering = ['name']

Or have I got a wrong understanding of how this works?

Cheers,
Victor

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

Reply via email to