0

我目前正在使用CreateView该课程Order

部分urls.py看起来像这样

url(
    r'^orders/create/$',
    CreateView.as_view(
        model = Order,
        template_name = 'doors/orders/create.html'
    ),
    name = 'orders_create'
),

如果我只是在 a{{ form }}中执行 a oors/orders/create.html,那么它将显示在 中声明的所有字段models.py

自定义每个字段的外观甚至控制它们是否可见(某些字段是可选的)的最佳方法是什么?

4

1 回答 1

1

要回答关于模型的哪些字段应该在表单中可用的部分问题,您可以使用ModelForm. 选项fieldsexclude定义表单中可用的字段:

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#using-a-subset-of-fields-on-the-form

然后,您将通过添加以下内容告诉CreateView您使用您的自定义表单form_class

url(
    r'^orders/create/$',
    CreateView.as_view(
        model = Order,
        template_name = 'doors/orders/create.html',
        form_class = OrderCreateForm,
    ),
    name = 'orders_create'
),

关于问题的第二部分(如何设置表单及其字段的样式),您可以使用{{ form.as_p }}{{ form.as_table }}或组合一个完全自定义的模板:

https://docs.djangoproject.com/en/dev/topics/forms/#displaying-a-form-using-a-template

于 2012-03-28T07:59:38.453 回答