在django admin中显示模型的_unicode__

时间:2012-08-13 03:09:52

标签: 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)

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

1 个答案:

答案 0 :(得分:38)

list_display documentation可以添加四件事:

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

    对于您的情况,list_display需要#3。

    对于search_fields,您可以更轻松地使用跟随符号(__)进行查找。

    最后我们想出了这个:

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