Как добавить выбор из списка выбора в базу данных при отправке - PullRequest
0 голосов
/ 15 июня 2019

У меня есть форма, которую я отправляю, и все данные сохраняются в модели «Заказы».Одним из полей является html selectbox, поэтому, когда я отправляю форму, она не сохраняется в модели.Я хочу выяснить, как я могу сохранить этот выпадающий список, как остальные данные.

Forms.py

class CreateOrderForm(forms.ModelForm):
    class Meta:
        model = Orders
        fields = ('reference', 'ultimate_consignee', 'ship_to')

ADD_ORDER.HTML

  <div class="column_order">
        <label for="form.reference">Reference ID: </label>
        {{ form.reference }}
        <br>
        <label> Ultimate Consignee:
         <br>
        <select class="select-css">
          {% for element in objectlist %}
            <option value="{{ element.c_name }}">{{ element.c_name }}</option>
          {% endfor %}
        </select>
        </label>
        <br>
        <label for="form.ship_to">Ship To: </label>
        <br>
        {{ form.ship_to }}
  </div>

Views.py (чтобы проиллюстрировать, как я заполняю поле выбора выше)

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


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

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

РЕДАКТИРОВАТЬ Models.py

class Customers(models.Model):

    ultimate_consignee = models.CharField(max_length=100)
    c_address = models.CharField(max_length=1000)
    c_country = models.CharField(max_length=50)

def _str_(self):
    return self.ultimate_consignee

class Orders(models.Model):

    reference = models.CharField(max_length=50, unique=True)
    ultimate_consignee = models.ForeignKey(Customers, blank=True)
    ship_to = models.CharField(max_length=500, blank=True)
    vessel = models.CharField(max_length=100, blank=True)
    booking_no = models.CharField(max_length=50, blank=True)
    POL = models.CharField(max_length=50, blank=True)
    DOL = models.DateField(blank=True)
    COO = models.CharField(max_length=50, blank=True)
    POE = models.CharField(max_length=50, blank=True)
    ETA = models.DateField(blank=True)
    pickup_no = models.CharField(max_length=50, blank=True)
    terms = models.CharField(max_length=1000, blank=True)
    sales_contact = models.CharField(max_length=100, blank=True)
    trucking_co = models.CharField(max_length=100, blank=True)
    loading_loc = models.CharField(max_length=100, blank=True)
    inspector = models.CharField(max_length=50, blank=True)
    total_cases = models.IntegerField(blank=True)
    total_fob = models.DecimalField(max_digits=10, decimal_places=2, blank=True)
    freight_forwarder = models.CharField(max_length=100, blank=True)
    commodity = models.CharField(max_length=200, blank=True)
    is_airshipment = models.BooleanField(default=False)
    credit = models.DecimalField(max_digits=10, decimal_places=2, blank=True)

def _str_(self):
    return self.reference

Как видите, окно выборакоторый я создаю в .html файле, на самом деле не имеет отношения к форме.И поэтому никакие данные из выбора не сохраняются в модели заказов, что я и хочу сделать здесь.Любые рекомендации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...