You cannot directly register a form with admin, you should be
registering models
from myapps.forms import MyModelForm
from myapps.models import MyModel
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
admin.site.register(MyModel, EmailAdmin)
Also the form should be a ModelForm for that model.
from django.forms import ModelForm
# Create the form class.
class MyModelForm(ModelForm):
class Meta:
model = MyModel
Read the docs thoroughly, especially:
http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform
http://docs.djangoproject.com/en/1.1/ref/contrib/admin/#ref-contrib-admin
On Mar 10, 10:28 pm, Praveen <[email protected]> wrote:
> Hi
> 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
> followedhttp://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/
> $',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 browserhttp://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 intercae..
>
> Just help me or suggest me any link.
>
> Thanks
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.