Я хотел бы отредактировать Django форму для конкретного экземпляра со значением PK. Мне нужно использовать метод init , чтобы ограничить раскрывающийся список. Однако я не знаю, как выполнить захват значения экземпляра в форме Django с помощью метода init .
Views.py
def updateOrder (request, pk):
order = Order.objects.get(id=pk)
form = OrderForm(request.POST, customer=request.user.customer.id, instance=order)
if request.method == 'POST':
form = OrderForm(request.POST, customer=request.user.customer.id, instance=order)
if form.is_valid():
form.save()
return redirect('customer_table')
context = {'form':form}
return render(request, 'create-order.html', context)
класс OrderForm (ModelForm):
class Meta:
model = Order
fields = ['contract', 'quantity', 'status']
def __init__(self, *args, **kwargs):
customer = kwargs.pop('customer', None)
super(OrderForm, self).__init__(*args, **kwargs)
self.fields['contract'].queryset = Contract.objects.filter(customer__id=customer)
self.fields['status'].queryset = Status.objects.filter(customer__id=customer)