0
1対1フィールドを持つフォームを保存しようとしています。Django 1対1フィールドが保存されません(非null制約違反)
ただし、エラーが発生し続ける「account_id」列のNULL値がNULL以外の制約に違反しています。
なぜ新しいアカウントオブジェクトを1対1フィールドに保存できなかったのか分かりません。すべてのあなたの助けを
モデル
class Account(models.Model):
name = models.CharField(max_length=30)
class Bank(models.Model):
account = models.OneToOneField(Account, on_delete=models.CASCADE, primary_key=True)
bank_name = models.CharField(max_length=30)
ビュー
def add_bank_view(request):
if request.method == 'POST':
form = BankForm(request.POST)
if form.is_valid():
account = Account.objects.create(name='xxx')
bankform = form.save(commit=False)
bankform.account = account
bankform.save()
return HttpResponseRedirect('/add_banks/')
else:
form = BankForm()
return render(request, 'bank/add_bank.html', {'form': form})
フォーム
class BankForm(forms.ModelForm):
class Meta:
model = Bank
fields = ['bank_name']
アカウントオブジェクトにはこの時点でpkがありますか?あなたはaccount.pkを印刷し、割り当ての前に結果を得ることができますか?データベースエンジンがトランザクションの周りに面白いことがあります。 – fixmycode
'account = Account.objects.create(bank_name = 'xxx')これを試すことができます – Roshan
エラーの完全なスタックトレースを投稿してください。 – solarissmoke