我有两个模型,通过外键连接。一种是内联表单集。由于某种原因,表单集 ID 被识别为数据库中的主键,每次提交表单时,属于表单集的表基本上都会被覆盖。保存时,如何忽略表单集 ID
模型.py
class Student(models.Model):
first_name = models.CharField(max_length=40)
last_name = models.CharField(max_length=40)
email = models.EmailField()
class Courses(models.Model):
student = models.ForeignKey(Student)
course_name = models.CharField(max_length=40)
start_time = models.TimeField()
表单.py
class CoursesForm(forms.ModelForm):
class Meta:
model = Courses
exclude = ("student",)
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = "__all__"
View .py ...
def post(self, request, *args, **kwargs):
sform = StudentForm(request.POST, instance=Student())
CourseSchedule = inlineformset_factory(Student, Courses, form=CoursesForm, can_delete=False, extra=0, min_num=1)
cforms = CourseSchedule(data=request.POST)
if sform.is_valid() and cforms.is_valid():
sform_obj = sform.save()
for cform in cforms.forms:
cform_obj = cform.save(commit=False)
cform_obj.student = sform_obj
cform_obj.save()
....
最佳答案
我想通了..我的表单集数据在提交后仍然存在。我必须在基本模型表单集中声明一个空查询集。
关于python - 保存时排除内联表单集中的 id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40188091/