Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django中实现依赖下拉列表_Python_Django_Django Forms - Fatal编程技术网

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

Python 如何在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

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

型号.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)
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循环中的两个表单字段。似乎最好的选择是将这两个选项都放在下拉菜单中,因为这意味着它们是相互依赖的

希望有帮助!:)