Insert or update on table violates foreign key constraint (error)
我正在尝试将表单数据保存到Postgres表\\'Student_Events \\'中,该表通过外键链接到\\'Student_INFO表\\',但继续收到完整性错误:
\\'在表" entry_student_event "上插入或更新违反了外键约束" entry_student_event_nsn_id_2499e7fd_fk_entry_student_info_id "
详细信息:表" entry_student_info "中不存在键(nsn_id)=(123556789)。\\'
Student_INFO中有一个学生的nsn为\\'123556789 \\',因此我不确定在该表中为什么它"不存在"。任何帮助将不胜感激,因为我对Django和PostgresSQL还是很陌生,
谢谢
Views.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def Grouplist(request): student_list = Student_INFO.objects.order_by('name') FOR student IN student_list: IF request.method == 'POST': form = EntryForm(request.POST) context = { 'student_list':student_list, 'form': form } IF form.is_valid(): event_save = form.save(commit=FALSE) event_save.nsn_id = student.nsn event_save.save() RETURN redirect('grouplist') ELSE: form = EntryForm() context = { 'student_list':student_list, 'form': form } RETURN render(request, 'grouplist.html', context) |
Models.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class Student_INFO(models.Model): nsn = models.IntegerField(blank = FALSE) birthdate = models.DateField("BirthDate", blank = FALSE) name = models.CharField(max_length=30, blank = FALSE) age_catagory = models.CharField(max_length=8, blank = TRUE, DEFAULT = '') grouproom = models.CharField(max_length=3, blank = FALSE) year_lvl = models.IntegerField(blank = FALSE) created = models.DateTimeField(auto_now_add=TRUE) updated = models.DateTimeField(auto_now=TRUE) def __str__(SELF): RETURN SELF.name class Student_Event(models.Model): nsn = models.ForeignKey(Student_INFO, on_delete=models.CASCADE) event1 = models.CharField(max_length=15, blank=FALSE, DEFAULT = '') event2 = models.CharField(max_length=15, blank=FALSE, DEFAULT = '') event3 = models.CharField(max_length=15, blank=FALSE, DEFAULT = '') event4 = models.CharField(max_length=15, blank=FALSE, DEFAULT = '') event5 = models.CharField(max_length=15, blank=FALSE, DEFAULT = '') event6 = models.CharField(max_length=15, blank=FALSE, DEFAULT = '') def __str__(SELF): RETURN SELF.nsn |
Forms.py
1 2 3 4 5 6 7 8 9 10 11 12 | class EntryForm(forms.ModelForm): class Meta: model= Student_Event FIELDS= ["event1","event2","event3","event4","event5","event6"] widgets = { 'event1':forms.Select(choices=EVENT_CHOICES), 'event2':forms.Select(choices=EVENT_CHOICES), 'event3':forms.Select(choices=EVENT_CHOICES), 'event4':forms.Select(choices=EVENT_CHOICES), 'event5':forms.Select(choices=EVENT_CHOICES), 'event6':forms.Select(choices=OPEN_CHOICES), } |
返回错误:
1 2 | INSERT OR UPDATE ON TABLE"entry_student_event" violates FOREIGN KEY CONSTRAINT"entry_student_event_nsn_id_2499e7fd_fk_entry_student_info_id" DETAIL: KEY (nsn_id)=(123556789) IS NOT present IN TABLE"entry_student_info". |
感谢@BearBrown解决它!