Reputation: 3526
I get the above error, when I do following.
class UserViewSet(generics.ListCreateAPIView):
"""
A viewset for viewing and editing user instances.
"""
models = User
serializer_class = UserSerializer
queryset = User.objects.filter(is_active=1) # See this
My model does contain is_active
field, and serializer has fields = '__all__'
.
Do I need to override get_queryset
method?
EDIT:
Following works. EDIT not working now.
def get_queryset(self):
return User.objects.filter(is_active=1)
def get_queryset(self):
return self.queryset.filter(is_active=1)
def get_queryset(self):
queryset = super(UserViewSet, self).get_queryset()
return queryset.filter(is_active=1)
All three says Cannot resolve keyword 'is_active' into field
.
P.S - Above all three were tried with queryset = User.objects.all()
in class
Models.py
class User(models.Model):
id = models.BigIntegerField(primary_key=True)
login_id = models.CharField(unique=True, max_length=64, blank=True, null=True)
is_active = models.CharField(max_length=1, blank=True, null=True)
auth_type = models.ForeignKey(AuthType, models.DO_NOTHING)
user_type = models.ForeignKey('UserType', models.DO_NOTHING)
user_org = models.ForeignKey('Organization', models.DO_NOTHING, blank=True, null=True)
parent = models.ForeignKey('self', models.DO_NOTHING, blank=True, null=True, related_name="childs")
auth_user_id = models.OneToOneField(AuthUser, models.DO_NOTHING, db_column="auth_user_id", related_name='cpeUser')
user_create_date = models.DateTimeField(blank=True, null=True)
user_expiry_date = models.DateTimeField(blank=True, null=True)
created_by = models.CharField(max_length=64, blank=True, null=True)
create_date = models.DateTimeField(blank=True, null=True)
updated_by = models.CharField(max_length=64, blank=True, null=True)
update_date = models.DateTimeField(blank=True, null=True)
class Meta:
managed = False
db_table = 'cpe_user'
Upvotes: 0
Views: 358
Reputation: 161
Try setting class attribute as
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
And then overriding get_queryset
method as below:
def get_queryset(self):
return self.queryset.filter(is_active=1)
Hope this helps!
Upvotes: 1