Обработка форм Django – как создать запись и добавить ее как ForeignKeyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обработка форм Django – как создать запись и добавить ее как ForeignKey

Сообщение Anonymous »

Я хотел бы решить проблему с обработкой формы моего файлаview.py.
Я хотел бы обработать ModelForm. Вместо того, чтобы позволить пользователю заполнять поле Field fk_transaction, я хотел бы создать новую запись транзакции и добавить ее в качестве ForeignKey в фоновом режиме в CcountBooking. Форма отображается корректно в шаблоне. Также транзакция успешно создана. Однако когда я хочу добавить и сохранить его в форме в view.py, выдается ошибка, сообщающая, что поле не существует.
Спасибо за любую помощь!
Мой view.py:
from django.http import HttpResponse
from django.shortcuts import render
from forms import AccountBookingForm
from models import Transaction

def deposit(request):
    context = {}
    if request.method == "POST":
        form = AccountBookingForm(request.POST)
        t = Transaction()
        form.fk_transaction = t
        form.save()
        return render(request, "deposit_success.html", {"form": form})
    else:
        form = AccountBookingForm()
        return render(request, "deposit.html", {"form": form})

Мои модели.py:
class Transaction(models.Model):
    type = models.CharField(max_length=11, choices=TR_TYPE_CHOICES, default=DEPOSIT)
    status = models.CharField(max_length=11, choices=TR_STATUS_CHOICES, default=DRAFT)
    text = models.TextField(max_length=500, default="", blank=True)

class AccountBooking(models.Model):
    fk_bankaccount = models.ForeignKey(
        BankAccount, on_delete=models.CASCADE, blank=False)
    fk_transaction = models.ForeignKey(Transaction, on_delete=models.CASCADE, blank=False)
    value = models.DecimalField(max_digits=14, decimal_places=2, blank=False)


Мои формы.py
from django.forms import ModelForm
from .models import AccountBooking

class AccountBookingForm(ModelForm):
    class Meta:
        model = AccountBooking
        fields = ["__all__"]
        exclude = ("fk_transaction",)


Подробнее здесь: https://stackoverflow.com/questions/787 ... foreignkey
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как добавить поле ForeignKey для сохранения в ModelForm Django?
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Как добавить поле ForeignKey для сохранения в ModelForm Django?
    Anonymous » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Как добавить поле ForeignKey для сохранения в ModelForm Django?
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Как добавить поле ForeignKey для сохранения в ModelForm Django?
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Ошибка импорта администратора Django: ошибка ограничения NOT NULL для поля ForeignKey в импорте CSV
    Anonymous » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»