24

モデルのユーザー名を Django 管理インターフェイスに表示したいのですが、その方法がよくわかりません..

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ドキュメントから、そこに追加できるものが 4 つあります。

  1. フィールド
  2. 行が表示されているインスタンスである 1 つの変数を受け入れる何らかのメソッド (呼び出し可能)。
  3. モデル クラスで定義されたメソッドまたは属性の名前である文字列。
  4. で定義されているメソッドの名前である文字列ModelAdmin

あなたの場合、 の #3 が必要ですlist_display

フォロー表記 ( ) を使用してルックアップを行うsearch_fieldsことができるので、簡単です。__

最終的には次のようになります。

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