【发布时间】:2021-04-04 18:47:46
【问题描述】:
我正在做一个学生作业提交项目,我制作了提交模型,其中作业作为问题的外键,学生作为个人资料的外键。 我正在研究某种方式,让老师可以选择已提交作业的学生列表并为他们分配分数,我尝试了以下方式,但它的表格没有得到验证,说明“选择一个有效的选择”
提交模型
class Submission(models.Model):
assignment = models.ForeignKey(Assignment, on_delete=models.CASCADE, verbose_name='assignment')
student = models.ForeignKey(StudentProfile, on_delete=models.CASCADE, verbose_name='student')
answer = models.URLField()
time_submitted = models.DateTimeField(auto_now_add=True)
marks_obtained = models.IntegerField(null=True)
标记更新表格
class MarksUpdateForm(forms.ModelForm):
class Meta:
model = Submission
fields = ['student', 'marks_obtained']
def __init__(self, *args, **kwargs):
self.assignment_id = kwargs.pop('assignment_id', None)
super(MarksUpdateForm, self).__init__(*args, **kwargs)
self.fields['student'].queryset = Submission.objects.filter(assignment__id=self.assignment_id).values_list(
'student__user__username', flat=True)
我的看法
form = MarksUpdateForm(request.POST)
if form.is_valid():
row = Submission.objects.get(id=assignmentId,
student__user__username=form.cleaned_data['student'])
row.marks_obtained = form.cleaned_data['marks_obtained']
row.save()
messages.success(request,
message="Marks Updated Successfully")
else:
print(form.errors)
我尝试通过覆盖 label_from_instance 并创建自定义表单而不是模型表单来更新我的标记更新表单,但没有解决“选择有效选择”的错误 谢谢。
【问题讨论】:
标签: django django-models django-rest-framework django-forms