стоит задача вывести дополнительную инфу из БД в шаблоне дженерика CreateView.
class InvoiceCreate(CreateView):
model = Invoice
template_name = 'invoice.html'
context_object_name = 'invoice'
form_class = InvoiceForm
queryset = OrderList.objects.get(pk=self.kwargs.get('order_pk'))
При описании view не могу в queryset использовать kwargs, пишет ошибку. При использовании метода get_context_data или get_queryset, все нормально. как использовать kwargs при описании view?
Изначально сделал так, все работает, но как-то коряво.
class InvoiceCreate(CreateView):
model = Invoice
template_name = 'invoice.html'
context_object_name = 'invoice'
form_class = InvoiceForm
def get_context_data(self, **kwargs):
context = super().get_context_data()
context['info'] = OrderList.objects.get(pk=self.kwargs.get('order_pk'))
return context
def form_valid(self, form, **kwargs):
invoice = form.save(commit=False)
b=self.get_context_data(**kwargs).get('info')
invoice.order_id = b
invoice.save()
return redirect(f'/list_order/{self.kwargs.get("order_pk")}')
Переменную context['info'] и в шаблоне использую