私の新しいプロジェクトの最前列に2つのDjangoモデルを変更するフォームがあります。実際には、ユーザーは自分のメールアドレス、名前、個人的な目標とその目標の締め切りを入力する必要があります。 「電子メール」と「名前」はモデル「ユーザー」に属し、他の2つはモデル「目標」に属します。同じフォームで保存された2つのdjangoモデルを関連付ける方法
私はGoalにユーザーに属する関係(ForeignKey)を与えようとしていますが、私はそれを行うことができません。私はすでに存在するユーザーがいる場合、それを行う方法を知っていますが、私の状況では、ユーザーと目標(彼に属する)は同時に作成されます。
マイビューは次のようになります。
from django.shortcuts import render
from .models import Goal, User
from .forms import GoalForm, UserForm
def front_site(request):
if request.method == "POST":
goal_form = GoalForm(request.POST)
user_form = UserForm(request.POST)
if all([goal_form.is_valid(), user_form.is_valid()]):
user_form.save()
goal_form.save()
return render(request, 'goalapp/single_goal.html', {'user_form': user_form, 'goal_form': goal_form})
else:
user_form = UserForm(request.POST)
goal_form = GoalForm(request.POST)
return render(request, 'goalapp/front_site.html', {'user_form': user_form, 'goal_form': goal_form})
else:
goal_form = GoalForm()
user_form = UserForm()
return render(request, 'goalapp/front_site.html', {'user_form': user_form, 'goal_form': goal_form})
私のモデルは次のようになります。ForeignKeyのが設定されるように
from django.db import models
from django.utils import timezone
class User(models.Model):
user = models.CharField(max_length=50)
user_email = models.EmailField()
def __str__(self):
return self.user
class Goal(models.Model):
user = models.ForeignKey('goalapp.User', related_name='goal', on_delete=models.CASCADE, null=True)
goal_body = models.CharField(max_length= 100)
goal_deadline = models.DateTimeField(default=timezone.now)
goal_status = models.IntegerField(default = 1)
def __str__(self):
return self.goal_body
は、どのように私は仕事にこれを得るのですか?
ああ、それはコミット= falseです。ありがとうございました! –