Значение исключения Django-Admin: объект DeclarativeFieldsMetaclass не повторяется - PullRequest
0 голосов
/ 11 марта 2010

У меня есть одна форма в 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}))

, а URL моего сайта

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

, и второй раз сразу после первого входа, после чего он покажет мне страницу администратора, но я не вижу свой EmailAdminв интерфейсе администратора ..

Просто помогите мне или предложите мне любую ссылку.

Спасибо

1 Ответ

0 голосов
/ 11 марта 2010

(это моя попытка переформатировать код вашей модели):

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...