如何获得session_key的形式类?不可能让请求参数做这样的事情:request.user
我已经得到了这种情况,我需要传递给功能get_user
session_key,这也是无法从请求中检索。
class CustomEntryAdminForm(EntryAdminForm):
def get_user(session_key):
session = Session.objects.get(session_key=session_key)
uid = session.get_decoded().get('_auth_user_id')
user = User.objects.get(pk=uid)
return user
categories = MPTTModelMultipleChoiceField(
label=_('Categories'), required=False,
queryset=Category.objects.filter(groups__in=get_user('uwry5olhemchxnmwa36v10zt2bg9zeci').groups.all()),
widget=MPTTFilteredSelectMultiple(_('categories'), False,
attrs={'rows': '10'}))
使用pass user作为表单的关键字参数。您不需要跳过一些环节,从请求中加载活动会话密钥,然后从解码的会话中加载用户。你所需要做的就是:
在视图:myform = MyFormClass(user= request.user)
在形式:class MyFormClass(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(MyFormClass, self).__init__(*args, **kwargs)
self.fields['categories'].queryset = Category.objects.filter(groups__in = self.user.groups.all())
注!不完整的工作代码。我只是想告诉你如何使用自我。查询集中的用户