我有一个名为 Foo 的应用。 Django-xadmin根据定义的模型自动在应用下创建菜单。我想用自定义视图创建自定义菜单。以下是我用 adminx.py -
编写的自定义管理视图from xadmin.views import CommAdminView
class TestAdminView(CommAdminView):
form = TestForm
app_config = FooConfigForCustomMenu
def get_context(self, *args, **kwargs):
ctx = super(TestAdminView, self).get_context(*args, **kwargs)
form = TestForm()
ctx["form"] = form
return ctx
def get(self, request, *args, **kwargs):
return render(request, "app/app.html", self.get_context())
def post(self, request, *args, **kwargs):
# Do some stuff
return render(request, "link to another template")
# Registration
xadmin.site.register_view(r"^foo-test/$", TestAdminView, name="foo-test")
在这里,我继承了xadmin的CommAdminView。 FooConfigForCustomMenu 是根据 apps.py 中的Django-xadmin-extras文档编写的,如下所示 -
from xadmin_extras.apps import AdminAppMixin
class FooConfigForCustomMenu(AdminAppMixin):
name = 'test'
verbose_name = 'test'
icon = 'chart'
def init_menu(self):
return [{'url': r"^foo-test/$", 'icon': 'bolt',
'title': 'Test for foo', 'order': '', 'perm': None}]
APP_CONFIG = FooConfigForCustomMenu()
但 Foo 应用下的xadmin中没有名为 test 的菜单。我在这做错了什么?我被困在这里好几个小时。通过继承django.forms的 Form 类, forms.py 中的表单就像这样启动 -
from django.forms import Form
class TestForm(Form):
# Initiation of form fields