Не удается обновить запись из базы данных, но я могу ее получить? - PullRequest
0 голосов
/ 17 июня 2019

У меня есть эта простая функция для обновления существующей записи, извлекая ее по первичному ключу в форме, а затем обновляя ее в базе данных в Django 2.0.1. Я могу просто получить данные из базы данных, но когда я нажимаю Submit to POST, запрос отправляется ([17/Jun/2019 17:59:28] "POST /suppliers/lr/13/ HTTP/1.1" 200 25533), но в базе данных не отражаются никакие изменения. Это мой код:

Views.py

@login_required
@supplier_required
def LrFormView (request, pk):
    lr_object = get_object_or_404(LR, id=pk)  # Or slug=slug
    form = LrForm(data=request.POST or None, instance=lr_object)
    if form.is_valid():
        form.save()  # redirect()
    return render(request, 'classroom/suppliers/print_LR.html', {'form': form})

Forms.py

class LrForm(forms.ModelForm):
  class Meta:
      model = LR


      fields = ('lr_declared', 'ewaybill_no', 'lr_quantity', 'lr_weight', 'lr_invoice_date', 'lr_item_name',
              'lr_consignor_name', 'lr_consignor_address', 'lr_consignor_contact_name',
              'lr_consignor_contact_phone', 'lr_consignee_name', 'lr_consignee_address',
              'lr_consignee_contact_name', 'lr_consignee_contact_phone', 'vehicle_no', 'lr_vehicle_type',
              'driver_name', 'driver_no', 'lr_no', 'lr_date', 'lr_billingparty', 'invoice_no')

models.py:

class LR(models.Model):
    lr_quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE, related_name='quiz_lr')

    lr_no = models.IntegerField(default=0)
    lr_date = models.DateTimeField(max_length=255, default=now)
    lr_billingparty = models.CharField(max_length=255, default=0)  # supplier company name foreign key

    invoice_no = models.IntegerField(default=0)
    lr_declared = models.IntegerField(default=0)
    ewaybill_no = models.IntegerField(default=0)
    lr_quantity = models.IntegerField(default=0)  # quantity
    lr_weight = models.IntegerField(default=0)  # weight

    lr_invoice_date = models.DateTimeField(max_length=255, default=now)

    lr_item_name = models.CharField(max_length=255, default=0)  # said to contain

    lr_consignor_name = models.CharField(max_length=255, default=0)  # shipper company name
    lr_consignor_address = models.CharField(max_length=255, default=0)  # shipper company name
    lr_consignor_contact_name = models.CharField(max_length=255, default=0)  # shipper company name
    lr_consignor_contact_phone = models.CharField(max_length=255, default=0)  # shipper company name

    lr_consignee_name = models.CharField(max_length=255, default=0)  # shipper company name
    lr_consignee_address = models.CharField(max_length=255, default=0)  # shipper company name
    lr_consignee_contact_name = models.CharField(max_length=255, default=0)  # shipper company name
    lr_consignee_contact_phone = models.CharField(max_length=255, default=0)  # shipper company name

    vehicle_no = models.CharField(max_length=255, default=0)
    lr_vehicle_type = models.IntegerField(default=0)
    driver_name = models.CharField(max_length=255, default=0)
    driver_no = models.IntegerField(default=0)

urls.py

path('lr/<int:pk>/', suppliers.LrFormView, name='lr_form'),

Я иду на эту страницу по следующей кнопке:

<a href="{% url 'suppliers:lr_form' taken_quiz.quiz_id %}" class="btn btn-primary">Generate LR</a>

Я попытался поискать в Интернете и нашел бесчисленные примеры обновления записи в базе данных с помощью этого метода. Я не могу понять, что здесь происходит не так. Как мне отладить это?

...