gpt4 book ai didi

python - 如何在 Django 中实现依赖下拉列表

转载 作者:行者123 更新时间:2023-12-01 07:24:00 33 4
gpt4 key购买 nike

我有一个食品表,其中包含食品名称及其价格。每当用户从模板表单中选择食品时,与其关联的价格应自动显示在表单中。我该怎么做??

models.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)

forms.py

class PaymentForm(forms.ModelForm):
class Meta:
model = Payment
fields = '__all__'

views.py

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>

最佳答案

首先:在模型文件中,更改

model.Models to models.Model

就像你的另一个一样。在进行更改之前,您将无法使用它。

第二:当您尝试在模板中访问此查询集时,您必须按如下方式访问它:

{% for amount in amounts %}
{{ amount.price }}
{{ amount.name }}
{% endfor %}

第三:“相关下拉菜单”

<label>Select the Food</label>
<select name="name" class="form-control" required>
{% for amount in amounts %}
<option value="{{amount.food.name}}">Food: {{ amount.name }}, Price: {{ amount.price }}</option>
{% endfor %}
</select>

当您将查询集传递给模板时,您可以在同一个 for 循环中访问两个表单字段。似乎最好的选择是将这两个选项放在下拉菜单中,因为这意味着它们是相关的。

希望有帮助! :)

关于python - 如何在 Django 中实现依赖下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57542831/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com