【发布时间】:2019-12-07 06:31:56
【问题描述】:
我正在为这个模型创建一个表单
class SemAssign(models.Model):
staff = models.ForeignKey(User, on_delete=models.CASCADE)
semester = models.ForeignKey(Subject, on_delete=models.CASCADE, default=1)
def __str__(self):
return f'{self.staff.username}'
我的forms.py 看起来像
class SemAssignForm(forms.ModelForm):
class Meta:
model = SemAssign
fields = ['staff','semester']
我根据views.py 中的用户定义过滤器创建了一个查询集
def assign_sem(request):
if request.user.is_staff:
dept = request.GET.get('department')
sem = request.GET.get('semester')
form=SemAssignForm(request.POST)
#form.fields['staff'].queryset = User.objects.filter(is_staff=True, profile__Department=dept)
#form.fields['semester'].queryset = Subject.objects.filter(sem=sem)
if form.is_valid():
SemAssign=form.save()
return redirect('dashboard')
当查询完美运行时,表单被验证为错误。如果我不进行查询,则表单已成功验证。我确定我在查询外键集时遗漏了某个地方。有人可以找我吗?
我的朋友建议我使用 modelformset,但这不是我的范围。我只想根据GET 请求过滤器过滤SemAssign 模型的字段。
【问题讨论】:
标签: django django-models