相关疑难解决方法(0)

如何在Django中的ModelForm中使用该请求

我想创建一个查询集,其中当前用户用作ModelForm中的过滤器:

class BookSubmitForm(ModelForm):
    book = forms.ModelChoiceField(queryset=Book.objects.filter(owner=request.user),)
...
Run Code Online (Sandbox Code Playgroud)

Django是否将请求传递给表单?这是好习惯吗?我该如何使用该请求?(当然没有定义名称请求)

编辑:

我尝试了另一个解决方案,即在视图中调用表单传递请求:

form = BookSubmitForm(request)
Run Code Online (Sandbox Code Playgroud)

然后在我使用的形式:

class BookSubmitForm(ModelForm):
    def __init__(self, request, *args, **kwargs):
        super(BookSubmitForm, self).__init__(*args, **kwargs)
        self.fields["library"].queryset = Library.objects.filter(owner=request.user)
Run Code Online (Sandbox Code Playgroud)

它工作,代码在表单中.现在我不确定它是最好的解决方案,它可以改进吗?

forms django

21
推荐指数
2
解决办法
1万
查看次数

标签 统计

django ×1

forms ×1