[英]Name is not defined while trying to get request.user to use in a form
我知道這個問題被問了很多次,但是我在 stackoverflow 中發布的解決方案總是遇到同樣的錯誤。 我可能犯了一個簡單的錯誤,但作為一個初學者,我真的不明白我的錯誤在哪里。
這是我的forms.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]
嘗試這個:
def __init__(self, user, *args, **kwargs):
user = user
super(AddMark, self).__init__(*args, **kwargs)
問題是您在具有該信息的方法之外引用 self.user 。
如果您想在提交表單時執行這些操作,您可能應該將它們放在 is_valid() 方法中。
class AddMark(forms.Form):
def __init__(self, user, *args, **kwargs):
self.user = user
super(AddMark, self).__init__(*args, **kwargs)
def is_valid(self):
teacher = Teacher.objects.filter(user = self.user)[:1]
modules = Module.objects.filter(enseignants__in = (teacher))
當我有疑問時,我總是發現它對 go 有幫助,請參閱 django 在 github 上的源代碼,它確實可以消除圍繞其類的許多謎團! https://github.com/django/django/blob/f5e5aac59ebbcea46b98d37834915de0f43d7cc8/django/forms/forms.py#L22
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.