【发布时间】:2017-11-15 08:14:29
【问题描述】:
我有一个带有外键的模型。对于这个模型,我想将'def str'设置为用户。
我已经这样做了
from django.contrib.auth import get_user_model
User = get_user_model()
class Rosters(models.Model):
place = models.ForeignKey('Places')
position = models.ForeignKey('Positions', blank=True, null=True)
user = models.ForeignKey(User, related_name='roster')
validfrom = models.DateTimeField(blank=True, null=True)
validto = models.DateTimeField(blank=True, null=True)
def __str__(self):
return self.user
这将获取用户名并显示在管理页面中。但是当我尝试创建一个新的名册时。我得到一个 TypeError __str__ returned non-string (type User)
我可以删除“def str...”并毫无问题地创建名册。但是每个名册在管理页面中都显示为对象。所以我可以加回'def str..'来查看每个名册的用户名。
我希望它们始终显示为用户名。而且我不知道为什么在我添加花名册时它不起作用。
【问题讨论】:
标签: python django django-models