Django - 修改通用详细视图以管理表单和 post 数据 - Django
Django - Modify a generic detail view to manage a form and post data - Django
我是 django 新手。
我想创建一个网页,显示有关特定对象的信息,并有一个表单来发送有关此对象的消息。
一开始,我使用了详细视图来显示有关对象的信息。
然后根据我的消息 Class
创建了一个消息表单
我使用 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
我是 django 新手。
我想创建一个网页,显示有关特定对象的信息,并有一个表单来发送有关此对象的消息。
一开始,我使用了详细视图来显示有关对象的信息。 然后根据我的消息 Class
创建了一个消息表单我使用 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