【问题标题】:retrive data according to the dropdown list item selected, in django根据在 django 中选择的下拉列表项检索数据
【发布时间】:2021-08-07 19:55:26
【问题描述】:

我有一个下拉列表,其中填充了数据库中的“价格范围”。 我想根据“价格范围”显示相关的“价格” 例如,在数据库中,我有这一行

Price Range                  Price
"0-1500"                      28
"1501-1750"                   30

当我选择范围“1501-1750”时,我想要的是输入字段或段落标签中显示的相应“价格”值。

下面是我的 Model.py、views.py 和 home.html 文件

models.py

from django.db import models
        
class price_range(models.Model):
    name = models.CharField(max_length=100, null=False)
    price = models.IntegerField(null=False)

views.py
from django.shortcuts import render
from range.models import price_range

def showobj(request):
  displayvalues = price_range.objects.all()
  return render(request, 'range/home.html', {"range":displayvalues})

home.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Range</title>
</head>
<body>
<center>

    <select name="drop1">
        <option selected disabled="true">Select the Price Range</option>
        {% for results in range %}
        <option> {{results.name}}   </option>
        {% endfor %}
    </select>
</center>
</body>
</html>

【问题讨论】:

    标签: python django sqlite django-views


    【解决方案1】:

    这个问题在为这个问题创建逻辑方面帮助了我很多。 [Django]How to return value to view after select item from dropdown list

    views.py
    
    from django.shortcuts import render
    from range.models import price_range
    
    def showobj(request):
        selected_range = None
        range_price = price_range.objects.all()
    
        if request.method == "POST":
           
            selected_range = request.POST.get("range")
            range_price = range_price.filter(name=selected_range)
    
        
        price = price_range.objects.order_by('name').values_list('name', flat=True)
    
        context = {
            'ranges': price,
            'range_price': range_price,
            'selected_range': selected_range,
        }
    
        return render(request, 'range/price_range.html', context)
    

    price_range.html
    
    <center>
    <h1>Index</h1>
        <form method="post">
        {% csrf_token %}
     {% if selected_range %}
           {% for rest in range_price %}
          <input name="price_value" value="{{ rest.price }}"></input>
         {% endfor %}
    {% endif %}
        <select name="range">
             <option selected disabled="true">Select the Price Range</option>
             {% for range in ranges %}
                 <option value="{{ range }}" {% if selected_range == range %} selected="selected" {% endif %}>{{ range }}</option>
             {% endfor %}
        </select>
        <input type="submit" value="Select">
    
    </form>
    </center>
    

    【讨论】:

      猜你喜欢
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多