django - "": "StudentsSubmittedDocument.Students_Enrollment_Records" 必须是 "StudentsEnrollmentRecord" 实例
问题描述
视图.py
id = request.POST.get('ids')
studentname = StudentProfile(id=id)
myfile = request.FILES['myfile']
fs = FileSystemStorage()
filename = fs.save(myfile.name, myfile)
uploaded_file_url = fs.url(filename)
student = StudentsEnrollmentRecord.Student_Users
V_insert_data = StudentsEnrollmentRecord(
Student_Users=studentname, Payment_Type=payment,
Education_Levels=educationlevel,School_Year=schoolyear
)
V_insert_data.save()
insert_doc = StudentsSubmittedDocument(
Students_Enrollment_Records = studentname,
Document = myfile
)
insert_doc.save()
return render(request, 'Homepage/pending.html')
模型.py
class StudentProfile(models.Model):
DoesNotExist = None
objects = None
Pending_Request = [
('Pending_Request', 'Pending_Request'),
('Enrolled', 'Enrolled'),
]
Image = models.ImageField(upload_to='images',null=True,blank=True)
Username = models.CharField(max_length=500,null=True,blank=True)
Password = models.CharField(max_length=500,null=True,blank=True)
LRN = models.IntegerField(null=True,blank=True)
Firstname = models.CharField(max_length=500,null=True,blank=True)
Middle_Initial = models.CharField(max_length=500,null=True,blank=True)
Lastname = models.CharField(max_length=500,null=True,blank=True)
class StudentsEnrollmentRecord(models.Model):
Student_Users = models.ForeignKey(StudentProfile, related_name='+', on_delete=models.CASCADE,null=True)
School_Year = models.ForeignKey(SchoolYear, related_name='+', on_delete=models.CASCADE, null=True, blank=True)
Courses = models.ForeignKey(Course, related_name='+', on_delete=models.CASCADE, null=True, blank=True)
class StudentsSubmittedDocument(models.Model):
Students_Enrollment_Records = models.ForeignKey(StudentsEnrollmentRecord, related_name='+', on_delete=models.CASCADE,blank=True,null=True)
Document_Requirements = models.IntegerField(null=True,blank=True)
Document = models.FileField(upload_to='files',null=True,blank=True)
如何修复此错误?我尝试了很多次来解决这个问题,但我不能,我不知道如何解决这个错误,我只想保存StudentsEnrollmentRecord(Student_Users)
到StudentsSubmittedDocument(Students_Enrollment_Records)
,顺便说一下这是我的错误:
ValueError at /newEnroll/ Cannot assign "": "StudentsSubmittedDocument.Students_Enrollment_Records" must be a "StudentsEnrollmentRecord" instance.
解决方案
在您的变量insert_doc
中,将您的Students_Enrollment_Records
参数从studentname
to更改为V_insert_data
,如下所示:
insert_doc = StudentsSubmittedDocument(
Students_Enrollment_Records = V_insert_data,
Document = myfile
)
该错误清楚地表明您没有为模型中的Students_Enrollment_Records
字段分配正确的实例StudentsSubmittedDocument
。
PD:我建议您更改ForeignKey
字段名称并将它们设为单数,因为它仅指向一条记录,复数名称可能会导致混淆。
推荐阅读
- java - Spring Boot - @Slf4j Logging Behavior differs in Test and in real Application
- python - 将嵌套的 Python OrderedDict 转换为 QJSValue
- firebase - 仅从 Firestore 导出原始数据
- javascript - AjaxData DataList - 在每个单元格的底部对齐一个按钮
- ckeditor - ckEditor - 我们可以禁用子子列表吗?
- php - php网站显示文件而不是下载
- flutter - The instance member 'barberData' can't be accessed in an initializer
- javascript - 绝对定位在 React Native 中不起作用 - Android
- javascript - 测试赛普拉斯后如何恢复数据库
- flutter - 使用文档中的字段进行另一个查询