Python 如何在Django中实现依赖下拉列表
我有一个包含食物名称和价格的食物表。每当用户从模板表单中选择食物时,与之相关的价格应自动显示在表单中。我该怎么做 型号.pyPython 如何在Django中实现依赖下拉列表,python,django,django-forms,Python,Django,Django Forms,我有一个包含食物名称和价格的食物表。每当用户从模板表单中选择食物时,与之相关的价格应自动显示在表单中。我该怎么做 型号.py class Food(models.Model): name = models.CharField(max_length = 100) price = models.IntegerField() class Payment(models.Model): food = models.ForeignKey(Food, on_delete=models
class Food(models.Model):
name = models.CharField(max_length = 100)
price = models.IntegerField()
class Payment(models.Model):
food = models.ForeignKey(Food, on_delete=models.CASCADE)
class PaymentForm(forms.ModelForm):
class Meta:
model = Payment
fields = '__all__'
def payment_details(request):
amounts = Food.objects.all()
context={
'amounts' : amounts
}
return render(request, 'app_name/payment.html',context)
forms.py
class Food(models.Model):
name = models.CharField(max_length = 100)
price = models.IntegerField()
class Payment(models.Model):
food = models.ForeignKey(Food, on_delete=models.CASCADE)
class PaymentForm(forms.ModelForm):
class Meta:
model = Payment
fields = '__all__'
def payment_details(request):
amounts = Food.objects.all()
context={
'amounts' : amounts
}
return render(request, 'app_name/payment.html',context)
视图.py
class Food(models.Model):
name = models.CharField(max_length = 100)
price = models.IntegerField()
class Payment(models.Model):
food = models.ForeignKey(Food, on_delete=models.CASCADE)
class PaymentForm(forms.ModelForm):
class Meta:
model = Payment
fields = '__all__'
def payment_details(request):
amounts = Food.objects.all()
context={
'amounts' : amounts
}
return render(request, 'app_name/payment.html',context)
模板
<label>Select the Food</label>
<select name="name" class="form-control" required>
{% for amount in amounts %}
<option value="{{amount.food.name}}">{{amount.food.name}}</option>
{% endfor %}
</select>
<label>Amount You Need to Pay</label>
<select name="name" class="form-control" required>
{% for amount in amounts %}
<option value="{{amount.food.price}}">{{amount.food.price}}</option>
{% endfor %}
</select>
选择食物
{金额百分比中的金额百分比}
{{amount.food.name}
{%endfor%}
您需要支付的金额
{金额百分比中的金额百分比}
{{数量.食物.价格}
{%endfor%}
首先:在模型文件中,更改
model.Models to models.Model
就像你的另一个。在进行更改之前,您将无法使用它
第二:当您尝试在模板中访问此查询集时,您必须以如下方式访问它:
{% for amount in amounts %}
{{ amount.price }}
{{ amount.name }}
{% endfor %}
第三:“依赖下拉菜单”
选择食物
{金额百分比中的金额百分比}
食物:{{amount.name},价格:{{amount.Price}
{%endfor%}
将查询集传递给模板时,可以访问同一for循环中的两个表单字段。似乎最好的选择是将这两个选项都放在下拉菜单中,因为这意味着它们是相互依赖的
希望有帮助!:)