例如,我想要一个页面,它允许用户为不同类别的商品添加数据。
像:
模型:类别是项目的外键
Category1(detail url):
Item 1(detail url):
Date(textbox), Amount(textbox), Price(textbox)
Item 2:
...
Category2:
...
Save button, add more button, etc...
由于这是一个例子,我在页面中显示的是什么。
我不介意用正常功能写硬件,但我想知道我是否可以利用这些观点,因为如果它们被大量介绍和开发,它们可能会很强大。那么为什么不利用呢?
有人可以告诉我如何使用它们的技巧,或者如果我们想要更多功能,我们就不应该使用它们吗?
答案 0 :(得分:1)
Django的通用视图涵盖了很多常见的用例。例如:
如果您需要它们,还有更多,它们涵盖了您可能需要的大多数视图。您也可以非常轻松地扩展它们以满足您的需求。作为一般的经验法则,它们对于你可以多快地获得构建的内容产生了巨大的差异,我建议在默认情况下使用它们,并且只在绝对必要时切换到编写自己的视图。如果您尚未学习它们,我认为这样做将是您非常好的时间投入 - 您将花费很快的时间。对于很多视图类型,只是指定模型,设置URL和模板的情况,你就完成了。
如果您需要传递其他数据,则可以扩展相关的通用视图并覆盖get_context_data()
方法。如果需要将相同的视图应用于多个不同的通用视图,则可以创建包含该方法的mixin并将其包含在该通用视图中。
对于包含表单的视图,如CreateView和UpdateView,如Drewness所说,你可以通过一个ModelForm实例告诉它使用什么形式,并且该表单本身可以被覆盖,所以你仍然有很多控制什么形式会做。例如,您可以定义以下格式:
from django.forms import ModelForm
class CategoryForm(ModelForm):
exclude = ['date_created']
以下视图
from django.views.generic.edit import CreateView
class CategoryCreateView(CreateView):
model = Category
form_class = CategoryForm
Django教程covers generic views pretty well。
答案 1 :(得分:1)