我希望我的头衔足以误解我想说的话,否则请先对不起。
我在插入数据时没有问题,但是当管理员更新学生已记录的学生部分时,该怎么办?我只想更新当前数据而不添加其他数据
这是我在model.py(post_save)中的代码。
@receiver(post_save, sender=StudentsEnrollmentRecord)
def create(sender, instance, created, **kwargs):
teachers = SubjectSectionTeacher.objects.filter(Courses=instance.Courses, Sections=instance.Section)
if created and teachers.exists():
StudentsEnrolledSubject.objects.create(
# This should be the instance not instance.Student_Users
Students_Enrollment_Records=instance,
# The below is also not an instance of SubjectSectionTeacher
Subject_Section_Teacher=teachers.first())
答案 0 :(得分:0)
您的代码还有其他问题(为什么要使用CamelCase设置属性?),但是在Django中,如果要有条件创建一个新对象,则可以使用update_or_create()
。示例:
StudentsEnrolledSubject.objects.update_or_create(
pk=instance.pk, defaults={"enrollment_credits": enrollment_credits}
)
如果数据库中不存在StudentsEnrolledSubject
,这将创建一个新的instance.pk
对象。否则,它将更新现有实例的enrollment_credits
。