Abinash Karki
Abinash Karki

Reputation: 57

get() missing 1 required positional argument: 'to_date'

I am trying to filter the users that are created between certain dates, I am using the filter method. But i am having a problem passing the arguments, how can i pass the argument in a correct fashion, this is what i have tried so far.

views.py

class RegisteredUserFilter(APIView):
    serializer = RegisteredUserFilterSerializer
    
    def get(self, from_date, to_date):
        userondate = User.objects.filter(created_at__range=[from_date, to_date]).values()
        users = []
        for user in userondate:
            users.append(user['username'])
        return Response({"User": users})

serialzers.py

class RegisteredUserFilterSerializer(serializers.Serializer):
from_date = serializers.DateField()
to_date = serializers.DateField()
model = User

full code here: https://github.com/abinashkarki/rest_framework_authentication/tree/master/authapp

while doing this i am getting:

TypeError: get() missing 1 required positional argument: 'to_date'

How should the argument be passed?

Upvotes: 0

Views: 1374

Answers (1)

lmaxyz
lmaxyz

Reputation: 66

If u want to take args from get, u have to write it in your urlpattern. So, u have to write something like

path('userRegisteredOnDate/<from_date>/<to_date>/', RegisteredUserFilter.as_view()),

like in your password-reset urlpattern. And then you should parse it, because method will takes string type, not date type.

Upvotes: 1

Related Questions