Как я могу предварительно заполнить текстовое поле одним значением, основанным на ПК в Django - PullRequest
0 голосов
/ 26 ноября 2018

Имея модель Предзаказа и Продукта, я создал встроенный набор форм.Клиент может сделать предварительный заказ (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'),

Есть предложения?

...