27 lines
757 B
Python
27 lines
757 B
Python
|
from dal import autocomplete
|
||
|
|
||
|
from .models import Tag
|
||
|
|
||
|
|
||
|
class AuthenticatedUserCreateMixin():
|
||
|
''' By default, autocomplete-light only allows creation of
|
||
|
choices if the user has add permission on the model. However,
|
||
|
we need to allow any authenticated user to create tags
|
||
|
'''
|
||
|
def has_add_permission(self, request):
|
||
|
print("i am called", request.user)
|
||
|
return request.user.is_authenticated
|
||
|
|
||
|
|
||
|
class TagAutocomplete(
|
||
|
AuthenticatedUserCreateMixin, autocomplete.Select2QuerySetView):
|
||
|
def get_queryset(self):
|
||
|
if not self.request.user.is_authenticated:
|
||
|
return Tag.objects.none()
|
||
|
|
||
|
qs = Tag.objects.all()
|
||
|
|
||
|
if self.q:
|
||
|
qs = qs.filter(name__icontains=self.q)
|
||
|
|
||
|
return qs
|