在django admin中显示模型的_unicode__

lak*_*esh 21 django django-admin

我想在Django Admin界面中显示模型的用户名,但不太确定如何操作..

The models.py:

    class Adult(models.Model):    
        user = models.OneToOneField(User)
        fullname = models.CharField(max_length=100,
                                    blank=True)
        def __unicode__(self):
            return self.user.username

Admin.py:

    class AdultAdmin(admin.ModelAdmin):
        list_display = ('??', 'Student_Name',)
        search_fields = ['??',]

    admin.site.register(Adult, AdultAdmin)
Run Code Online (Sandbox Code Playgroud)

里面应该怎么办?以上 ?我想显示unicode或self.user.username?我该怎么做?需要一些指导......

Bur*_*lid 43

list_display文档中可以添加四件事:

  1. 一个字段
  2. 一些方法(可调用的)接受一个变量,该变量是显示该行的实例.
  3. 一个字符串,它是模型类中定义的方法或属性的名称.
  4. 一个字符串,它是在中定义的方法的名称ModelAdmin.

对于你的情况,我们需要#3 list_display.

为了search_fields更容易,您可以使用跟随符号(__)进行查找.

最后我们想出了这个:

class AdultAdmin(admin.ModelAdmin):
    list_display = ('__unicode__', 'Student_Name',)
    search_fields = ['user__username']
Run Code Online (Sandbox Code Playgroud)

  • 通常,对于基于 python3 的项目,这将是 `__str__`。 (4认同)