python - 保存时排除内联表单集中的 id 字段

标签 python django inline-formset

我有两个模型,通过外键连接。一种是内联表单集。由于某种原因,表单集 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/

相关文章:

java - 无法实例化 Kafka 结构化流 KafkaSourceProvider

Django 1.3 测试错误 : ValueError: list. remove(x): x not in list

Django BaseGenericInlineFormSet 表单不继承 FormSet 实例作为表单实例 related_object

Django: AttributeError: View 对象没有属性 'kwargs'

python - 根据另一个列表的索引将列表拆分为 block

python - 如何使用 python 更新 mysql,其中字段和条目来自字典?

Python - 如何使用 ask_sdk_core.handler_input 在 Alexa Skill 中获取 UserID

django - 在 Django 中使用简单 View 翻转 boolean 值?

django - 如何运行 nginx、gevent、virtualenv 和 django

django - 在基于Django类的 View (CBV)中保存inlineformset