我是一个新的django用户,我想建立一个网页,并显示特定对象的信息,并有一个表单来发送这个对象的信息。
我想建立一个网页,显示一个特定对象的信息,并有一个表单来发送关于这个对象的消息。
一开始,我使用了一个细节视图来显示对象的信息,然后基于我的消息类创建了一个消息表单。
我使用get_context_data来传递模板上下文中的表单。
我想知道是否有办法在同一个视图中管理表单的验证,或者我应该回到函数视图中来?
我看到FormMixin可以帮助我,你能告诉我这是否是正确的解决方案。
谢谢您的帮助
我的看法。
class LoanDetailView(DetailView):
model = Loan
def get_context_data (self, **kwargs):
context = super(LoanDetailView, self).get_context_data(**kwargs)
msg_form = MessageForm()
context['msg_form'] = msg_form
return context
在我的模板中
<form method="POST">
{%csrf_token%}
<fieldset class="form-group">
{{ msg_form | crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit"> Envoyer </button>
</div>
</form>
你可以使用这种模式
class LoanDetailView(DetailView):
def get_context_data(self, **kwargs):
[...]
def post(self, request, *args, **kwargs):
form = MessageForm(request.POST)
if form.is_valid():
[...] # logic similiar as in function based view