Python 如何在django视图中使用'commit=False'获取外键值?
观赏乐趣:-Python 如何在django视图中使用'commit=False'获取外键值?,python,django,django-models,django-views,Python,Django,Django Models,Django Views,观赏乐趣:- def save_all_form_at_once(request): if request.method == 'POST': form1 = StudentForm( request.POST, prefix="form1") form2 = GradeForm( request.POST, prefix="form2") form3 = SemesterForm( reque
def save_all_form_at_once(request):
if request.method == 'POST':
form1 = StudentForm( request.POST, prefix="form1")
form2 = GradeForm( request.POST, prefix="form2")
form3 = SemesterForm( request.POST, prefix="form3")
form4 = CourseForm( request.POST, prefix="form4")
if all([form1.is_valid() , form2.is_valid() , form3.is_valid() , form4.is_valid()]):
form1.save()
dont know how to get following values
# new_course = form4.save(commit=False)
# new_course.student_id = form1.get("enroll_no")
# new_course.save()
# new_sem = form3.save(commit=False)
# new_sem.student_id = form1.get("enroll_no")
# new_sem.course_id = new_course.get("id")
# new_sem.save()
# new_grade = form2.save(commit=False)
# new_grade.Sem_Info_id = new_sem.get("id")
# new_grade.Student_Name_id = form1.get("enroll_no")
# new_grade.Subject_Info_id = new_course.get("id")
# new_grade.save()
else:
form1 = StudentForm(prefix="form1")
form2 = GradeForm(prefix="form2")
form3 = SemesterForm(prefix="form3")
form4 = CourseForm(prefix="form4")
return render(request, 'add.html', {'form1' : form1,
'form2' : form2,
'form3' : form3,
'form4' : form4 } )
这是我的models.py文件,您可以看到,我没有将null=Flase
放在任何FK中,因为我需要它们放在我的数据库中。
如何获取所有这些FK值并将其保存到数据库中
class Grade(models.Model):
id = models.AutoField(primary_key=True)
Student_Name = models.ForeignKey(Student, on_delete=models.CASCADE)
Subject_Info = models.ForeignKey(Course, on_delete=models.CASCADE)
Sem_Info = models.ForeignKey(Semester, on_delete=models.CASCADE)
credit_th = models.IntegerField(default=0)
credit_pr = models.IntegerField(default=0)
marks_gain_th = models.IntegerField(default=0)
marks_gain_pr = models.IntegerField(default=0)
marks_gain_mt = models.IntegerField(default=0)
#calculated on database side
total_marks = models.IntegerField(default=0)
grade_point = models.FloatField(default=0)
credit_point = models.FloatField(default=0)
我需要所有FK值。而且不知道怎么做!如果我做错了,请纠正我