2016-04-01 7 views
0

私はDjangoの練習用の本を読んでいますが、admin.pyのコード "model = Thing"を見ましたが、 "model = Thing"を削除しても、Webプログラムは実行できます管理サイトに違いは見られません??、このコードは何を意味しますか?それがなければ何が起こるのでしょうか?私のmodels.pyクラスは、シングadmin.py: "model = Thing"、このコードはどういう意味ですか?それがなければ何が起こるのですか?

admin.py

from django.contrib import admin 
from collection.models import Thing 



class ThingAdmin(admin.ModelAdmin): 
    model = Thing #if I remove this code, the program still can run,,why need this code 
    list_display = ('name', 'description',) 
    prepopulated_fields = {'slug': ('name',)} 

admin.site.register(シング、ThingAdmin)

modles.py

from django.db import models 

class Thing(models.Model): 
    name = models.CharField(max_length=255) 
    description = models.TextField() 
    slug = models.SlugField(unique=True) 
です
+2

それだけ 'InlineModelAdmin'のために必須です - あなたの答えのためのhttps://docs.djangoproject.com/en/1.9/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin.model – jonrsharpe

+0

おかげで、あなたのための –

答えて

1

を設定するModelAdminクラスの属性は無効です。コードからその行を安全に削除することができます。

Djangoの管理者では、admin.site.register()を呼び出すとき、またはregisterデコレータを使用してモデルを指定します。これにより、複数のモデルに対して同じモデル管理クラスを使用することができます。

admin.site.register(Thing, ThingAdmin) 
admin.site.register(OtherThing, ThingAdmin) 

ジョンはコメントで指摘したように、あなたはmodelInlineModelAdminためのオブジェクトを指定する必要があります。

+0

感謝回答 –

関連する問題