24

我想在 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)

里面应该放什么??多于 ?我想显示 unicode 还是 self.user.username?我该怎么做?需要一些指导...

4

1 回答 1

48

list_display文档中,您可以在其中添加四件事:

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

对于您的情况,我们需要 #3 for list_display

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

最后我们想出了这个:

class AdultAdmin(admin.ModelAdmin):
    list_display = ('__unicode__', 'Student_Name',)
    search_fields = ['user__username']
于 2012-08-13T06:12:35.243 回答