Django - 过滤表单字段的查询集时出错



我创建了一个表单和视图(FBV(来添加新模型。我覆盖了表单的__init__,但现在当我尝试访问我的视图时,它引发了一个错误CreationForm对象没有属性'get'

我的观点:

def Creation(request):
user = None
if request.user.is_authenticated:
user = request.user
#   POST METHOD
if request.method == "POST":
form = CreationForm(request.POST)   
form.user = user    
if form.is_valid():
sheet = form.save()
return redirect("sheet_detail", pk=sheet.id)
form = CreationForm(initial={'user': request.user})
return render(request, "jde/creation_form.html", context={"form": form})

我的表格:

class CreationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(CreationForm, self).__init__(self, *args, **kwargs)
self.fields["contest"].queryset = Contest.objects.filter(active=True)
class Meta:
...

由于将self传递给对super().__init()的调用,因此引发错误。删除它应该可以解决您的问题。

class CreationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(CreationForm, self).__init__(*args, **kwargs)
self.fields["contest"].queryset = Contest.objects.filter(active=True)
class Meta:
...

最新更新