gpt4 book ai didi

python - Django 将用户传递给 ModelForm 以在 ModelChoiceField 查询中使用

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:15 26 4
gpt4 key购买 nike

所以,我有一个用于帖子的 ModelForm。该表单包括一个 ModelChoiceField,它显示用户可以发布到的类(class)。我只希望用户发布他们订阅的类(class)。现在,每一门类(class)都包含在类(class)查询集中。

基本上,我想将 request.user 传递到我的 PostForm 并将其用于类(class) ModelChoiceField 查询集。我现在正在使用这段代码;这个逻辑对我来说很有意义,但它不起作用:/

class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('course', 'content', 'image')

def __init__(self, *args, **kwargs):
user = kwargs.pop("user", None)
if user is not None:
self.course.queryset = user.profile.courses.all()
super(PostForm, self).__init__(*args, **kwargs)

course = forms.ModelChoiceField(queryset=Course.objects.all())
content = forms.CharField(widget=forms.Textarea(attrs={'rows': 5, 'cols': 50}))

我得到的错误是 AttributeError at/'PostForm' object has no attribute 'course'

最佳答案

正确的语法是这样的:

self.fields['course'].queryset = Course.objects.filter([...])

我推荐你使用优秀的django braces .

UserKwargModelFormMixin 正是您要找的。

关于python - Django 将用户传递给 ModelForm 以在 ModelChoiceField 查询中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34272186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com