使用Django表单中的模型创建带有值的下拉列表

时间:2019-06-14 00:20:29

标签: python django model dropdown

我正在尝试创建一个下拉字段,其中填充了来自模型(客户)的值,并将其显示给用户。

以下是我要尝试的操作-不确定原因,但是下拉字段中没有填充“客户模型”中的任何信息,只是空的。

Views.py

iff

模板(add_order.html)

def add_order(request):
    if request.method == "POST":
        form = CreateOrderForm(request.POST)
        objectlist = Customers.objects.all()


        if form.is_valid():
            form.save()
            return redirect('add_manifest')#, kwargs={'reference_id': form.cleaned_data['reference']})
    #else:
    form = CreateOrderForm()
    objectlist = Customers.objects.all()
    context = {
        'form': form,
        'objectlist': objectlist,
    }

    return render(request, 'add_order.html', context)

Models.py

<div class="container">
    <form method="POST">
      <br>
      <h2>Order Information</h2>
      <br>
 <div class="column_order">
 <select>
          {% for element in objectlist %}
            <option value="{{ element.c_name }}">
          {% endfor %}
        </select>
 </div>
</div>

当我转到该URL并呈现模板时,将显示选择框,但其中没有任何值。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您没有关闭<option>标记,并且没有选项文本。试试:

<option value="{{ element.c_name }}">{{ element.c_name }}</option>

value设置为{{ element.pk }}也是一个好主意,因为可能没有多个客户具有相同的名称,因为您不强制将该列唯一。