Reputation: 599
I am trying to filter the date from my model class but when i am passing the date from the URL its not filtering the dateTime. Here is my modal class:
class UserDeviceNotification(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE
)
mobile_device_id = models.ForeignKey(
'UserMobileDevice',
on_delete = models.CASCADE
)
notification_message = models.TextField()
notification_title = models.TextField(null=True)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user.name
and
class UserNotificationDateFilterSerializer(serializers.ModelSerializer):
class Meta:
model = models.UserDeviceNotification
fields = '__all__'
class FilterDateTime(django_filters.FilterSet):
created_at = django_filters.DateTimeFilter(name="created_at",lookup_type="gte")
class Meta:
model = models.UserDeviceNotification
fields = ['created_at']
View class :
class UserNotificationDateFilterAPI(generics.ListAPIView):
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated,)
queryset = UserDeviceNotification.objects.all().order_by('-id')
serializer_class = serializers.UserNotificationDateFilterSerializer
pagination_class = PostLimitOffsetPagination
filter_class = serializers.FilterDateTime
def get_queryset(self):
return self.queryset.filter(user=self.request.user)
I have no clue what I am doing wrong here. But when I am passing the URL as :
http://172.61.25.51:8080/api/user/filter_notification/?created_at=2019-07-17
I am not getting the filter response.
Upvotes: 0
Views: 35
Reputation: 4635
name
field. Instead try field_name
https://github.com/carltongibson/django-filter/blob/5d1f6a512c0c8f092897bf805a3b3990451202e8/django_filters/filters.py#L69Upvotes: 1