猿问

django错误__str__返回非字符串(类型__proxy__)

我有使用一些模型GenericForeignKey,当我试图进入他们Django管理util的,我可以看到的记录列表,但是当我点击其中一个,我得到这个错误:__str__ returned non-string (type __proxy__)。


这是其中一种模型的代码:


class ReservationComponent(models.Model):

    reservation = models.ForeignKey(Reservation, on_delete=models.PROTECT, related_name='components', verbose_name=_(''))

    day = models.DateField(verbose_name=_('Day'))

    content_type = models.ForeignKey(ContentType, on_delete=models.PROTECT)

    object_id = models.PositiveIntegerField()

    content_object = GenericForeignKey('content_type', 'object_id')


    class Meta:

        verbose_name = _("Reservation Component")

        verbose_name_plural = _("Reservations Components")


    def __str__(self):

        return "[{}][{}]{} - [{}]{}".format(self.id, self.reservation, self.day, self.content_type, self.object_id)


慕后森
浏览 222回答 2
2回答

眼眸繁星

我试图重现这个问题,我做到了。问题出在ugettext_lazy。您应该使用ugettext而不是ugettext_lazy。因此,您的导入应为from django.utils.translation import ugettext as _测试环境为 Django==1.11
随时随地看视频慕课网APP

相关分类

Python
我要回答