python - 如何在 django 视图中使用 `commit=False` 来获取外键值?
问题描述
观点有趣:-
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 值。并且不知道该怎么做!如果我做错了,请纠正我!
解决方案
推荐阅读
- python - 使用 PyCharmCE 的 psycopg2 运行 Flask 应用程序的问题
- python - 在 python 上对请求模块使用主机名:端口:用户名:密码格式
- python - Pygame 游戏中的元素闪烁
- php - 在 Centos 7 PHP7.4 上安装 pecl
- java - Java如何改进自定义验证表单的代码以便更易读
- amazon-web-services - 生成新实例时,AWS Elastic Beanstalk ebextensions 配置不起作用
- svelte - 如何更新 SvelteKit 中的页面和查询参数?
- cookies - 完整的 cookie 管理系统,asp.net core 3.1 及以上
- r - 在闪亮的日期范围上不留下选定的日期
- maven - 将 jar 文件部署到本地 nginx maven 存储库失败