具有预购和产品模型,我创建了一个嵌入式表单集。 客户可以进行预订(FK)。
此嵌入式表单集的目标是在文本字段中仅仅一个预先填充的值,而不是所有值。
我期望的预填充值与客户的pk有关。
这是我的观点:
class PreorderProductCreateView(LoginRequiredMixin, CreateView):
model = Preorder
fields=['preorder_date','client']
template_name='test/test.html'
def get_context_data(self, **kwargs):
data = super(PreorderProductCreateView, self).get_context_data(**kwargs)
data['client']=Client.objects.filter(pk=self.kwargs.get('pk')) #
print(Client.objects.filter(pk=self.kwargs.get('pk')))#
if self.request.POST:
data['formset'] = PreorderProductFormSet(self.request.POST)#bound the formset with data
else:
data['formset'] = PreorderProductFormSet()#empty formset
return data
def form_valid(self, form):
context = self.get_context_data()
formset = context['formset']
with transaction.atomic():
self.object = form.save()
if formset.is_valid():
formset.instance = self.object
formset.save()
return super(PreorderProductCreateView, self).form_valid(form)
def get_success_url(self, **kwargs):
return reverse('client_list')
我可以成功获取当前客户端的pk,但无法将返回的客户端对象提供给我的数据字典,最终无法仅加载所需的客户端对象。
这是我的网址:
url(r'^preorders/edit/(?P<pk>\d+)/$', views.PreorderProductCreateView.as_view(), name='preorder_edit'),
有什么建议吗?