首页 > 解决方案 > Django Autocomplete Light create_field 不工作

问题描述

我真的希望能够使用 django-autocomplete-light 使用户能够在使用自动完成框时创建新的特许经营名称。我已经设置好了,但是我没有创建的选项。我可以在有关添加权限的文档中看到,但我不太明白它是在哪里完成的,而且如果我在 shell 中运行,我会收到如下错误:

>>> from user.models import User
>>> user = User.objects.get(username="joeuser")
>>> permission = Permission.objects.get(name='Can add franchise')
>>> user.user_permissions.add(permission
>>> user.user_permissions.add(permission)

AttributeError: 'User' object has no attribute 'user_permissions'

使用它的表格如下所示:

franchisename = forms.ModelChoiceField(queryset=allfranchises,widget=autocomplete.ModelSelect2(url='/seasons/franchisesautocomplete/'),required=True)

网址如下所示:

url(r'^franchisesautocomplete/', views.FranchiseAutocomplete.as_view(create_field='name'), name='franchiseautocomplete'),

视图如下所示:

class FranchiseAutocomplete(autocomplete.Select2QuerySetView):
    def get_queryset(self, *args, **kwargs):
        user = getuser(self.request)
        if user == None:
            #Set a blank queryset if the user is not logged in
            qs = Franchise.objects.none()
        else:
            qs = Franchise.objects.all()
        return qs

自动完成功能将结果集返回到选择框,只是无法让创建工作。请有人帮忙。

标签: djangodjango-authenticationdjango-autocomplete-light

解决方案


不确定这是否是一个答案,但是..您确定您的 User 类继承自 PermissionsMixin 吗?

class User(AbstractBaseUser, PermissionsMixin):
     pass

推荐阅读