Создание DropDown от модели в Django

Обновить

April 2019

Просмотры

8 раз

0

Я ищу, чтобы создать выпадающий список в шаблоне, где значение выпадающего списка приходит из поля (ссылка) в моем Orders модели в models.py. Я понимаю, создание выпадающего меню, где значения устанавливаются статически, но так как я ищу, чтобы заполнить с значениями, хранящимися в БД, я не уверен, где начать.

Я создал модель и попытался играть с views.py, forms.py и шаблоны. Я в состоянии получить каждый из порядковых номеров для отображения, но не в выпадающем меню, и я борюсь с тем, как написать свой шаблон.

MODELS.PY

from django.db import models

class Orders(models.Model): 

    reference = models.CharField(max_length=50, blank=False)
    ultimate_consignee = models.CharField(max_length=500)
    ship_to = models.CharField(max_length=500)

def _str_(self):
    return self.reference

FORMS.PY

from django import forms
from .models import *

def references():
    list_of_references = []
    querySet = Orders.objects.all()
    for orders in querySet:
        list_of_references.append(orders.reference)
    return list_of_references

    class DropDownMenuReferences(forms.Form):

        reference = forms.ChoiceField(choices=[(x) for x in references()])

VIEWS.PY

def reference_view(request):
    if request.method == "POST":
        form = references(request.POST)

        if form.is_valid():
            form.save()
            return redirect('index')

    else:
        form = references()
        return render(request, 'proforma_select.html', {'form': form})

PROFORMA_SELECT.HTML

{% extends 'base.html' %}

{% block body %}

  <div class="container">
    <form method="POST">

      <br>

      {% for field in form %}
      <div class="form-group row">
        <label for="id_{{ field.name }}" class="col-2 col-form-label"> {{ field.label }}</label>
        <div class="col-10">
          {{ field }}

        </div>
      </div>
      {% endfor %}

      <button type="submit" class="btn btn-primary" name="button">Add Order</button>
    </form>
  </div>

{% endblock %}

Все, что я получаю, когда я вынести шаблон каждый из эталонных #s перечисленных вне, но НЕ в раскрывающемся меню. Это приводит меня к мысли, моя проблема заключается в основном в шаблоне, но я не уверен, как я новичок в использовании Django.

0 ответы