所以我设置了UpdateView来发送一个request
对象到表单,这样我就可以修改表单中的查询集(基于request.user
)
我的视图.py公司名称:
class DataSourceUpdateView(UpdateView):
model = DataSource
form_class = DataSourceForm
template_name = 'engine/datasource_update.html'
def get(self, request, *args, **kwargs):
obj = DataSource.objects.get(pk=kwargs['pk'])
self.object = None
form = DataSourceForm(request)
return self.render_to_response(
self.get_context_data(form=form,
object=obj))
def post(self, request, *args, **kwargs):
form = DataSourceForm(request, request.POST, request.FILES)
if form.is_valid:
return self.form_valid(form)
else:
return self.form_invalid(form)
我的表单.py公司名称:
^{pr2}$我的问题是,在模板中,表单没有使用现有值填充。我该怎么解决这个问题?在
使用
UpdateView
有点棘手。因此,为了初始化表单的数据,您需要在视图中而不是在表单中进行。在下面是如何在使用
UpdateView
时执行所做的:你的形式将是:
^{pr2}$奖金:
为了理解为什么需要初始化表单的数据,您需要查看“UpdateView的MRO,它是Visit this documentation link:
并且
FormMixin
具有以下属性和方法visit the documentation link,它们是:另外,我建议您看看
FormMixin
有什么类似的属性和方法,以便了解如何覆盖它们或让Django为您做魔术:D相关问题 更多 >
编程相关推荐