привет Я новичок в Django Я создаю приложение заказа. В новой форме заказа я хочу получить цену и единицу измерения из таблицы продуктов. Когда я выбираю продукт из выпадающего списка, он получает цену и единицу измерения из выбранной таблицы продуктов. product.here мой мой код
model.py
class Product(models.Model):
product_name = models.CharField(max_length=200)
unit = models.TextField()
price = models.IntegerField()
active = models.IntegerField(default='1')
def __str__(self):
return self.product_name
class Order(models.Model):
name = models.CharField(max_length=200)
delivery_date = models.DateField(blank=True)
product_id = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.IntegerField()
unit = models.CharField(max_length=50)
price = models.IntegerField()
amount = models.IntegerField()
view.py
def new(request):
if request.POST:
form = OrderForm(request.POST)
if form.is_valid():
if form.save():
return redirect('/', messages.success(request, 'Order was successfully created.', 'alert-success'))
else:
return redirect('/', messages.error(request, 'Data is not saved', 'alert-danger'))
else:
return redirect('/', messages.error(request, 'Form is not valid', 'alert-danger'))
else:
form = OrderForm()
return render(request, 'new.html', {'form': form})
form.py
class OrderForm(ModelForm):
product_id = forms.ModelChoiceField(queryset=Product.objects.filter(active='1'), empty_label='')
delivery_date = forms.DateField(required=True)
quantity = forms.IntegerField(initial=1)
price = forms.IntegerField(initial=0)
class Meta:
model = Order
fields = ['name', 'delivery_date', 'product_id', 'unit', 'quantity', 'price', 'amount']
class ProductForm(ModelForm):
class Meta:
model = Product
fields = ['product_name', 'unit', 'price']
новый . html
<form class="form" role="form" action="" method="post"> {% csrf_token %}
<div class="row">
<div class="col-sm-6">
<header>Customer Info</header>
<div class="form-group floating-label">
{{ form.name | add_class:'form-control' }}
<label for="regular2">Customer Name</label>
</div>
<div class="form-group floating-label">
{{ form.product_id | add_class:'form-control select2-list' | attr:'id:product_id'}}
<label for="textarea2">Product ID</label>
</div>
<div class="form-group floating-label">
{{ form.quantity | add_class:'form-control'}}
<label for="regular2">Quantity</label>
</div>
</div>
<div class="col-sm-6">
<header >Order Info</header>
<div class="form-group">
{{ form.delivery_date | add_class:'form-control' | attr:'type:date'}}
<label for="regular2">Delivery Date</label>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group floating-label">
{{ form.unit | add_class:'form-control'}}
<label for="regular2">Unit</label>
</div>
</div>
<div class="col-sm-6">
<div class="form-group floating-label">
{{ form.price | add_class:'form-control'}}
<label for="regular2">Price</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group floating-label">
{{ form.amount| add_class:'form-control' }}
<label for="regular2">Amount </label>
</div>
</div>
</div>
<div class="col-md-12">
<hr>
<div class="card-actionbar-row">
<input type="submit" class="btn btn-flat btn-primary ink-reaction" value="SUBMIT">
</div>
</div>
</div>
</form>
![enter image description here](https://i.stack.imgur.com/1gsee.png)
Мне нужна помощь в получении цены за единицу, выбрав название ингредиента в раскрывающемся списке