gpt4 book ai didi

python - 根据当前登录的用户自定义 Django 表单

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:37 25 4
gpt4 key购买 nike

这是我的forms.py的一部分

class SubjectForm(forms.ModelForm):
title=forms.CharField(label='',widget=forms.TextInput(attrs={'maxlength':150,
'placeholder':'Write here. . .'}))
body=forms.CharField(label='', widget=forms.Textarea(attrs={'placeholder':'Extend here. . .'}))
board=forms.ModelChoiceField(label='',queryset=Board.objects.all(), empty_label='Select Board')
class Meta:
model = Subject
fields = ('title','body','board')

现在它正在呈现板表单字段中的所有板对象,但我只想呈现用户已订阅的那些板。如何让用户进入表单并对其进行操作?

最佳答案

表单.py:

class SubjectForm(forms.ModelForm):
title=forms.CharField(label='',widget=forms.TextInput(attrs={'maxlength':150,
'placeholder':'Write here. . .'}))
body=forms.CharField(label='', widget=forms.Textarea(attrs={'placeholder':'Extend here. . .'}))
board=forms.ModelChoiceField(label='',queryset=Board.objects.all(), empty_label='Select Board')

def __init__(self, *args, **kwargs):
user = kwargs.pop('user', None)
super(SubjectForm, self).__init__(*args, **kwargs)
if user is not None:
self.fields['board'].queryset = Board.objects.filter(user=user)

class Meta:
model = Subject
fields = ('title','body','board')

views.py:

CreateView 演示:

class SubjectCreateView(CreateView):
form_class = SubjectForm
template_name = 'subject/create.html'
success_url = '/'

def get_form_kwargs(self):
kwargs = super(SubjectCreateView, self).get_form_kwargs()

if self.request.method == 'GET':
kwargs.update({
'user': self.request.user,
})
return kwargs

form = SubjectForm(**{'user': request.user})

关于python - 根据当前登录的用户自定义 Django 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47937261/

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