Имея модель Предзаказа и Продукта, я создал встроенный набор форм.Клиент может сделать предварительный заказ (FK).
Моя цель для этого встроенного набора форм состоит в том, чтобы только предварительно заполненное значение в текстовом поле, а не все значения.
Мое желаемое предварительно заданное значение связано с ПК клиента.
Вот мое мнение:
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')
Я могу успешно получить ПК текущего клиента, но я не могу кормитьвернул объект client в мой словарь данных и, наконец, не могу загрузить только нужный объект client.
Вот мой URL:
url(r'^preorders/edit/(?P<pk>\d+)/$', views.PreorderProductCreateView.as_view(), name='preorder_edit'),
Есть предложения?