我有一个名为ModelForm
的{{1}},它从视图传递给用户,但是我不确定如何将用户从MemoForm
传递到ModelAdmin
。
备忘录表格:
MemoForm
ModelAdmin :
class MemoForm(forms.ModelForm):
title = forms.CharField()
content = forms.CharField(widget=forms.Textarea)
important = forms.CheckboxInput()
receiver = forms.ModelMultipleChoiceField(
queryset=None,
required=True,
widget=forms.CheckboxSelectMultiple
)
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user') # passing in the user
super(MemoForm, self).__init__(*args, **kwargs)
self.fields['receiver'].queryset = EmployeeType.objects.filter(
casino=self.user.casino
)
我有几个问题:
class CustomMemoAdmin(admin.ModelAdmin):
form = MemoForm
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
if not request.user.is_superuser:
self.fields = (
'title',
'content',
'important',
'receiver',
'read',
'unread',
'word_file',
)
self.filter_horizontal = ('casino',)
return form(user=request.user) # passing the user through the form here.
转到MemoForm
?ModelAdmin
并在ModelForm
中初始化用户吗?这是我尝试使用以下设置从“管理”面板添加记事时遇到的错误:
ModelAdmin