简体   繁体   English

Django:带有form_class的generic.UpdateView不会呈现表单

[英]Django: generic.UpdateView with form_class won't render form

I'm having a really confusing issue with some views in Django. 我在Django中的某些视图上遇到了一个令人困惑的问题。 I created Update and Create views, both using the generic versions, both using the same template. 我创建了Update和Create视图,它们都使用通用版本,并且都使用相同的模板。 They worked perfectly...until I added a custom modelForm to exclude a field. 他们工作得很好...直到我添加了一个自定义的modelForm来排除字段。 Now, the Create view still works correctly, but the Update view won't render a form at all. 现在,“创建”视图仍然可以正常工作,但是“更新”视图根本不会呈现表单。

Form: 形成:

class member_form(ModelForm):
     class Meta:
          model=member
          exclude=('created_by',)

Views: 观看次数:

class member_detail(generic.UpdateView):
     form_class=member_form
     model=member
     template_name_suffix='_detail'

class member_create(generic.CreateView):
     form_class=member_form
     model=member
     template_name_suffix='_detail'

Urls (main): Urls(主要):

url(r'^members/',include(members.urls',namespace=members),name='members_list'),

Urls (app): 网址(应用程式):

url(r'^$',login_required(views.member_list.as_view()),name='index'),
url(r'^(?P<pk>\d+)/$',login_required(views.member_detail.as_view(success_url=".")),name='detail'),
url(r'^new/$',permission_required('members.add_member')(views.member_create.as_view(success_url='/members/')),name='create'),

This worked perfectly for both views until I added the form_class. 在我添加form_class之前,这对于两个视图都非常有效。 Now, member_create still works perfectly, but member_detail shows nothing for {{ form.as_table }}. 现在,member_create仍然可以正常工作,但是member_detail对于{{form.as_table}}来说什么也没显示。 When I switch it to just {{ form }} in that template, I get this for member_detail: 当我将其切换为该模板中的{{form}}时,我得到的是member_detail:

<members.views.member_form object at 0x7f7de3f20d50>

What's going on here? 这里发生了什么? Any ideas? 有任何想法吗? Thanks! 谢谢!

The problem was a stupid naming mistake on my part, on the production code, which I found while trying to redact new sections to add to the question; 问题是我自己在生产代码上的一个愚蠢的命名错误,这是我在尝试编辑新的部分以添加到问题时发现的。 the _create and _form objects in my question were both named _form in production. 我的问题中的_create和_form对象在生产中都被命名为_form。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM