html - 将数据从一个 View 传递到另一个 django

标签 html django forms

我的应用中有两个 View

View .py

def selectwarehouse(request):
    z = Warehouse.objects.all()
    return render(request, 'packsapp/employee/selectwarehouse.html', {'z': z})

def warehouse_details(request):
    queryset = AllotmentDocket.objects.filter(send_from_warehouse = #dynamic(from the selectwarehouse.html))

    return render(request, 'packsapp/employee/allotwarehousedetails.html', {'query': queryset})

selectwarehouse.html

{% block content %}

<label>Select Warehouse<label>
    <select id="the-id">
        {% for i in z %}
        <option value="{{ i }}">{{ i }}</option>
        {% endfor %}
        <form method="post" novalidate>
            {% csrf_token %}
            <a href="{% url 'employee:warehouse_details' %}" class="btn btn-outline-secondary" role="button">Proceed</a>
            <a href="{% url 'employee:products_table' %}" class="btn btn-outline-secondary" role="button">Nevermind</a>
        </form>
    </select>
    {% endblock %}

网址.py

    path('select-warehouse/', selectwarehouse, name='select_warehouse'),
    path('warehouse-details/', warehouse_details, name='warehouse_details'),

我希望当一个人从下拉列表中选择“仓库”并点击继续时,它应该将该值传递给def warehouse_details并将该值传递给Allotment查询集。我该怎么做?

最佳答案

MAKE 作为隐藏输入

模板

 {% block content %}

<label>Select Warehouse<label>
    <select id="the-id">
        {% for i in z %}
        <option value="{{ i }}">{{ i }}</option>
        <form method="post" novalidate>
            {% csrf_token %}
             <input type="hidden" name="object_id" value="{{ i.id }}">
  <input class="btn btn-outline-secondary" name="Proceed" type="submit" 
     value="Proceed"> 
            <a href="{% url 'employee:products_table' %}" class="btn btn-outline- 
        secondary" role="button">Nevermind</a>
        </form>
    {% endfor %}
    </select>
    {% endblock %}

View .py

def selectwarehouse(request):
    z = Warehouse.objects.all()
    return render(request, 'packsapp/employee/selectwarehouse.html', {'z': z})

def warehouse_details(request):
    queryset = AllotmentDocket.objects.get(id=request.POST.get('object_id'))
    //Now to access the element in queryset write (queryset.'attribute name')
    return render(request, 'packsapp/employee/allotwarehousedetails.html', {'query': 
    queryset}

检查这是否有效

尝试打印查询集并查看输出结果。

关于html - 将数据从一个 View 传递到另一个 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58374044/

相关文章:

javascript - 在 React 中将文本放在 div 的底部

django - 您可以将变量插入到模板中的 {% include %} 语句中吗?

html - 使列表组全宽 - 出现水平滚动条

javascript - 使用 Javascript 进行 HTML 登录?

python - 使用 Factory Boy SelfAttribute +relativedelta

python - 创建组后创建模型django

php - HTTPS 是否使 POST 数据加密?

python - 网站天真地将 IP 作为形式参数 - 我无法追踪吗?

php - 获取简单的 html 文本字段以发布到 mysql 数据库

javascript - 添加 href 时,图像轮播中断将图像推出 slider