我目前正在使用CreateView
作为课程Order
。
urls.py
的一部分看起来像这样
url(
r'^orders/create/$',
CreateView.as_view(
model = Order,
template_name = 'doors/orders/create.html'
),
name = 'orders_create'
),
如果我只是在{{ form }}
内执行oors/orders/create.html
,那么它将显示models.py
中声明的所有字段。
自定义每个字段外观甚至控制它们是否可见的最佳方法是什么(某些字段是可选的)?
答案 0 :(得分:1)
要回答有关模型中哪些字段应该可用的问题,您可以使用ModelForm
创建自定义表单。选项fields
和exclude
定义表单中可用的字段:
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