这是基于类的视图代码:
# views.py
class ObjectCreate(CreateView):
model = ObjectModel
fields = "__all__"
使用此类很容易创建对象并保存它。
我想知道如何?
如果我想使用基于函数的视图来实现它怎么办?
答案 0 :(得分:1)
使用功能视图,您需要实现所有功能,包括创建form for your model:
def create_object(request):
if request.method == 'GET':
form = ObjectForm()
if request.method == 'POST':
form = ObjectForm(request.POST)
if form.is_valid():
instance = form.save() # instance created
# now redirect user or render a success template
return redirect(...)
# if request method is GET or form is invalid return the form
return render(request, 'path/template_name.html', {'form': form})
答案 1 :(得分:1)
如果您想了解CreateView
的工作原理,请查看其源代码。或者,为了更简单地了解结构,请查看this site,其中列出了所有Django CBV。
您会发现CreateView
继承自其他9个类,具有大约20个属性(其中model
和fields
)和24个可以重写以自定义其行为的方法。