【问题标题】:Django: generic.UpdateView with form_class won't render formDjango:带有 form_class 的 generic.UpdateView 不会呈现表单
【发布时间】:2013-07-26 21:16:16
【问题描述】:

对于 Django 中的某些视图,我遇到了一个非常令人困惑的问题。我创建了更新和创建视图,都使用通用版本,都使用相同的模板。他们工作得很好......直到我添加了一个自定义模型表单来排除一个字段。现在,Create 视图仍然可以正常工作,但 Update 视图根本不会呈现表单。

表格:

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

观看次数:

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'

网址(主要):

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

网址(应用):

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'),

在我添加 form_class 之前,这对两种视图都非常有效。现在,member_create 仍然可以正常工作,但 member_detail 没有显示 {{ form.as_table }}。当我在该模板中将其切换为 {{ form }} 时,我会为 member_detail 得到这个:

<members.views.member_form object at 0x7f7de3f20d50>

这里发生了什么?有任何想法吗?谢谢!

【问题讨论】:

  • 我看不出代码有什么问题。你能发布你的urls.py吗?
  • 添加了 urls.py 中的相关行。

标签: python django django-forms django-templates django-views


【解决方案1】:

问题是我在生产代码上的一个愚蠢的命名错误,我在尝试编辑新部分以添加到问题中时发现了该错误;我的问题中的 _create 和 _form 对象在生产中都被命名为 _form 。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2021-07-10
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多