Django-Admin 异常值:“DeclarativeFieldsMetaclass”对象不可迭代

发布于 2024-08-25 05:02:42 字数 2083 浏览 3 评论 0原文

我在 forms.py 中有一个表单

class EmailForm(forms.Form):
    recipient = forms.CharField(max_length=14, min_length=12,
widget=forms.TextInput(attrs=require))
    message = forms.CharField(max_length=140, min_length=1,
widget=forms.Textarea(attrs={'cols': 30, 'rows': 5}))

,我的网站网址

admin.autodiscover()
urlpatterns = patterns('',  (r'^admin/(.*)',
include(admin.site.urls)),)

现在是我希望它显示在管理界面上

我到目前为止尝试过

第一次尝试

from myapps.forms import EmailForm
class EmailAdmin(admin.ModelAdmin):
     form = EmailForm
did not work Exception Value:
'DeclarativeFieldsMetaclass' object is not iterable

第二次尝试 现在我关注了 http://docs.djangoproject.com /en/dev/ref/contrib/admin/#django.contri... 但无法获得帮助

class EmailAdmin(admin.ModelAdmin):
    def my_view(self,request):
        return admin_my_view(request,self)

    def get_urls(self):
        urls = super(SmsAdmin, self).get_urls()
        my_urls = patterns('',(r'^my_view/
$',self.admin_site.admin_view(self.my_view)))
        return my_urls + urls

def admin_my_view(request, model_admin):
    opts = model_admin.model._meta
    admin_site = model_admin.admin_site
    has_perm = request.user.has_perm(opts.app_label \
    + '.' + opts.get_change_permission())
    context = {'admin_site': admin_site.name,
    'title': "My Custom View",
    'opts': opts,
    'root_path': '/%s' % admin_site.root_path,
    'app_label': opts.app_label,
    'has_change_permission': has_perm}
    template = 'admin/demo_app/admin_my_view.html'
    return render_to_response(template,
context,context_instance=RequestContext(request))
admin.site.register(EmailForm,EmailAdmin)

,当我运行服务器并在浏览器上输入 localhost:8000/admin 时 点击输入按钮

Exception Value:
'DeclarativeFieldsMetaclass' object is not iterable

并在第一次输入后 ,然后第二次输入,然后它显示 我的管理页面,但我在管理界面中看不到我的电子邮件管理。

请帮助我或建议我任何链接。

谢谢

I have one form in forms.py

class EmailForm(forms.Form):
    recipient = forms.CharField(max_length=14, min_length=12,
widget=forms.TextInput(attrs=require))
    message = forms.CharField(max_length=140, min_length=1,
widget=forms.Textarea(attrs={'cols': 30, 'rows': 5}))

and my site url is

admin.autodiscover()
urlpatterns = patterns('',  (r'^admin/(.*)',
include(admin.site.urls)),)

now I want it to be shown on admin interface

I tried so far

First attempt

from myapps.forms import EmailForm
class EmailAdmin(admin.ModelAdmin):
     form = EmailForm
did not work Exception Value:
'DeclarativeFieldsMetaclass' object is not iterable

Second attempt
and now I followed http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contri...
but could not get help

class EmailAdmin(admin.ModelAdmin):
    def my_view(self,request):
        return admin_my_view(request,self)

    def get_urls(self):
        urls = super(SmsAdmin, self).get_urls()
        my_urls = patterns('',(r'^my_view/

and when I run server and type on browser localhost:8000/admin
and hit enter button

Exception Value:
'DeclarativeFieldsMetaclass' object is not iterable

and second time just after first time when I again enter then it show
me the admin page but I can't see my EmailAdmin in admin interface..

Just help me or suggest me any link.

Thanks

,self.admin_site.admin_view(self.my_view))) return my_urls + urls def admin_my_view(request, model_admin): opts = model_admin.model._meta admin_site = model_admin.admin_site has_perm = request.user.has_perm(opts.app_label \ + '.' + opts.get_change_permission()) context = {'admin_site': admin_site.name, 'title': "My Custom View", 'opts': opts, 'root_path': '/%s' % admin_site.root_path, 'app_label': opts.app_label, 'has_change_permission': has_perm} template = 'admin/demo_app/admin_my_view.html' return render_to_response(template, context,context_instance=RequestContext(request)) admin.site.register(EmailForm,EmailAdmin)

and when I run server and type on browser localhost:8000/admin
and hit enter button

and second time just after first time when I again enter then it show
me the admin page but I can't see my EmailAdmin in admin interface..

Just help me or suggest me any link.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一世旳自豪 2024-09-01 05:02:42

(这是我重新格式化你的模型代码的尝试):

class EmailForm(forms.Form):
    recipient = forms.CharField(max_length=14, min_length=12,
         widget=forms.TextInput(attrs=require))
    message = forms.CharField(max_length=140, min_length=1,
         widget=forms.Textarea(attrs={'cols': 30, 'rows': 5}))

我会把钱花在“attrs=require”上——如果这不是拼写错误的话。

你想要的是这样的:

    recipient = forms.CharField(max_length=14, min_length=12,
         widget=forms.TextInput(), required=True)

(This is my attempt at reformatting your model code):

class EmailForm(forms.Form):
    recipient = forms.CharField(max_length=14, min_length=12,
         widget=forms.TextInput(attrs=require))
    message = forms.CharField(max_length=140, min_length=1,
         widget=forms.Textarea(attrs={'cols': 30, 'rows': 5}))

I would put my money on the bit that says "attrs=require" -- if that's not a typo.

What you want instead is something like this:

    recipient = forms.CharField(max_length=14, min_length=12,
         widget=forms.TextInput(), required=True)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文