Django данные для вставки внешнего ключа - PullRequest
0 голосов
/ 26 мая 2020

Почему я не могу получить идентификатор и сохранить его в базе данных? хотя я уже отображаю его в моем html.

в моем окне html, я уже показываю идентификатор платежа

  <h3><b>Payment Type</b></h3>
<select id="payments" name ="payments" onchange="payment(this.value)" style="border-radius:8px 8px 8px 8px; outline: none; padding:4px 10px 4px 10px" required>
    <option value="0">-- Payment Type --</option>
   {% for paymentschedule in payment %}
    <option value="{{paymentschedule.Payment_Type.id}}" name ="payments">{{paymentschedule.Payment_Type.id}} {{paymentschedule.Payment_Type}}</option>
    {% endfor%}
</select>

enter image description here

Этот 1 номер является идентификатором

это мой лог c о том, как сохранить в моей базе данных

id = request.POST.get('payments')
payment = PaymentType(id=id)


V_insert_data = StudentsEnrollmentRecord(
    Payment_Type=payment,
        )
V_insert_data.save()

это ошибка говорит

enter image description here

Это мои модели

class StudentsEnrollmentRecord(models.Model):
    Pending_Request = [
       ('Active', 'Active'),
       ('Inactive', 'Inactive'),
    ]
    Payment_Type = models.ForeignKey(PaymentType,on_delete=models.CASCADE, null=True ,blank=True)

class PaymentType(models.Model):
    Description = models.CharField(max_length=500,blank=True)
    Display_Sequence = models.IntegerField(blank=True, null=True)  

я что-то пропустил?

это полная трассировка

enter image description here

ОБНОВЛЕНИЕ

когда я пробовал это

paymentid = request.POST.get('payments')
payment = PaymentType.objects.filter(id=paymentid)

V_insert_data = StudentsEnrollmentRecord.objects.create(
      Payment_Type=payment
        )

Я получаю эту ошибку

enter image description here

1 Ответ

0 голосов
/ 26 мая 2020

Пожалуйста, не создавайте объект, вы можете просто сохранить данные с помощью:

<b>payment_id</b> = request.POST.get('payments')
V_insert_data = StudentsEnrollmentRecord.objects.create(
    <b>Payment_Type_id=payment_id</b>
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...