我知道这个问题被问了很多次,但我在stackoverflow中发布的解决方案中不断遇到同样的错误。我可能犯了一个简单的错误,但作为一个初学者,我不知道我的错误在哪里
这是我的表格。py:
from django import forms
from .models import *
class AddMark(forms.Form):
def __init__(self, user, *args, **kwargs):
self.user = user
super(AddMark, self).__init__(*args, **kwargs)
teacher = Teacher.objects.filter(user = self.user)[:1]
modules = Module.objects.filter(enseignants__in = (teacher))
desc = forms.CharField(label='Description')
coef = forms.FloatField(label='Coefficient')
max_mark = forms.FloatField(label='Max Mark')
module = forms.ChoiceField(label='Module',choices=modules)
似乎错误来自于
teacher = Teacher.objects.filter(user = self.user)[:1]
试试这个:
问题是,您在具有该信息的方法之外引用self.user
如果要在提交表单时执行这些操作,可能应该将它们放在is_valid()方法中
当我有疑问的时候,我总是觉得在github上查看django的源代码很有帮助,它确实可以消除围绕其类的许多神秘感! https://github.com/django/django/blob/f5e5aac59ebbcea46b98d37834915de0f43d7cc8/django/forms/forms.py#L22
相关问题 更多 >
编程相关推荐