似乎get_models和get_app在django 1.8中不再可用。
以下可用於:
from django.contrib import admin
from django.apps import apps
app = apps.get_app_config('dashboard')
for model_name, model in app.models.items():
admin.site.register(model)
延長:如果你想顯示模型的全部或選擇字段作爲網格而不是模型對象中的一列Unicode表示你可以使用這個:
app = apps.get_app_config('your_app_name')
for model_name, model in app.models.items():
model_admin = type(model_name + "Admin", (admin.ModelAdmin,), {})
model_admin.list_display = model.admin_list_display if hasattr(model, 'admin_list_display') else tuple([field.name for field in model._meta.fields])
model_admin.list_filter = model.admin_list_filter if hasattr(model, 'admin_list_filter') else model_admin.list_display
model_admin.list_display_links = model.admin_list_display_links if hasattr(model, 'admin_list_display_links') else()
model_admin.list_editable = model.admin_list_editable if hasattr(model, 'admin_list_editable') else()
model_admin.search_fields = model.admin_search_fields if hasattr(model, 'admin_search_fields') else()
admin.site.register(model, model_admin)
這樣做是什麼,它擴展的ModelAdmin類的飛行,並設置這是需要顯示list_display
場模型數據在管理中的網格表示。如果您在模型中將您所需的字段列爲admin_list_display
,那麼它將採用該字段,否則將生成模型中可用字段的元組。
可以類似地設置其他可選字段,如list_filter
。
有關list_display的更多信息,請參閱django documentation。
這段代碼是做你想做的:http://djangosnippets.org/snippets/2066/? – arie 2012-02-25 12:26:16
謝謝。看代碼有很多幫助。 – hobbes3 2012-02-25 13:08:24