我有点困惑,因为我打算这样做,部分原因是因为文档从中文翻译得有点差,部分原因是因为我只是围绕着基于类的观点。
编辑:我正在使用xadmin(代替django admin)代替内置的django管理站点。
我有以下目录结构:
Project
manage.py
db.sqlite3
/docs
/static
/templates
/main_app
__init__.py
settings.py
urls.py *
wsgi.py
/apps
/xadmin
adminx.py *
/survey
admin.py *
以及main_app.urls中的以下URL映射:
from django.conf.urls import url, include
from django.contrib import admin
import xadmin
xadmin.autodiscover()
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^survey/', include('survey.urls')),
url(r'xadmin/', include(xadmin.site.urls)),
]
survey.admin有它的类,例如
class SurveyAdmin(admin.ModelAdmin):
list_display = ('name', 'is_published', 'need_logged_user', 'template')
list_filter = ('is_published', 'need_logged_user')
inlines = [CategoryInline, QuestionInline]
actions = [make_published]
admin.site.register(Survey, SurveyAdmin)
我知道我的Survey应用程序的模型工作正常,因为当我检查db.sql3时,我可以在那里看到我的虚拟条目。当我登录 127.0.0.1:8000/admin 时,我可以看到SurveyAdmin视图已注册并可用。
但是当我登录 127.0.0.1:8000/xadmin 时,SurveyAdmin尚未注册。
从xadmin docs开始,我必须在xadmin.adminx中注册管理员类视图。我想要注册的管理类视图已经存在于survey.admin中。我相信我需要做的就是将这些视图移动到xadmin.adminx - 我真的只想在我这样做之前检查以确保这是正确的。
答案 0 :(得分:0)
你也不应该在urls.py
中添加它:
from xadmin.plugins import xversion
xversion.register_models()
中
答案 1 :(得分:0)
搞定了。我所要做的就是将classes.admin中的类移到xadmin.adminx并稍微更改参数。
从 survey.admin
移出class SurveyAdmin(admin.ModelAdmin):
list_display = ('name', 'is_published', 'need_logged_user', 'template')
list_filter = ('is_published', 'need_logged_user')
admin.site.register(Survey, SurveyAdmin)
到 xadmin.adminx
class SurveyAdmin(object):
list_display = ('name', 'is_published', 'need_logged_user', 'template')
list_filter = ('is_published', 'need_logged_user')
xadmin.site.register(Survey, SurveyAdmin)
有道理,因为xadmin.adminx意味着要替换你常用的admin.py(之前调查的是.admin)