我想显示名字和姓氏。为了实现这一点,我使用了__str__()
方法。但它不起作用
class OnlineUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
def __str__(self):
return f"{self.user.first_name} {self.user.last_name}"
而是显示用户ID
在{
class OnlineUsersAdmin(admin.ModelAdmin):
# a list of displayed columns name.
list_display=['user']
admin.site.register(OnlineUsers, OnlineUsersAdmin)
我哪里做错了?如何获得我想要的格式
版本:
Django==2.0.1
调试:
user_info=OnlineUsers.objects.get_or_create(user=self.user)
print(user_info.__str__())
输出:
((<OnlineUsers: FIRST_NAME LAST_NAME >, False))
^{} (Django doc)也支持可调用方法。因此,在模型admin上定义一个
user(...)
方法,如下所示:您应该在列表显示中使用
__str__
而不是用户:否则,您会告诉django显示
user
字段。由于User
模型没有覆盖__str__
方法,所以您可以看到用户的id您还可以删除
list_display
属性。在这种情况下,默认情况下将使用__str__
相关问题 更多 >
编程相关推荐