【发布时间】:2020-09-17 19:05:18
【问题描述】:
我想在同一个视图中使用两种形式。这是一个受限渠道。第一种形式是聊天,第二种形式启动对话(布尔字段,默认值 = false)。所有表单共享相同的成功 url。
你有什么想法吗?我从 Django 开始 :) 感谢您的帮助
这是我的看法:
@method_decorator(login_required(login_url='/cooker/login'),name="dispatch")
class CheckoutDetail(generic.DetailView, FormMixin):
model = Sugargroup
context_object_name = 'sugargroup'
template_name = 'checkout_detail.html'
form_class = CreateSugarChatForm
validation_form_class = LaunchSugargroupForm # that is what I would like to add (models: boolean field with false default = user activate channel in changing it by true thanks to the forms
def get_context_data(self, **kwargs):
context = super(CheckoutDetail, self).get_context_data(**kwargs)
context['form'] = self.get_form()
return context
def form_valid(self, form):
if form.is_valid():
form.instance.sugargroup = self.object
form.instance.user = self.request.user
form.save()
return super(CheckoutDetail, self).form_valid(form)
else:
return super(CheckoutDetail, self).form_invalid(form)
### I don't know how I can implement this into: def form_valid
def form_valid(self, validation_form):
validation_form.instance.user = self.request.user
validation_form.save()
return super(CheckoutDetail, self).form_valid(validation_form)
######
def post(self,*args,**kwargs):
self.object = self.get_object()
form = self.get_form()
if form.is_valid():
return self.form_valid(form)
else:
return self.form_valid(form)
def get_success_url(self):
return reverse('checkout:checkout_detail',kwargs={"slug":self.object.slug})
...
【问题讨论】: