[Answered ]-Drf how to: simple-jwt authenticating without the USERNAME_FIELD

1👍

You can override the username_field as follows:

Also be careful of using PasswordField, which trims whitespace by default. You definitely do not want password to be valid.

from rest_framework import serializers
rest_framework_simplejwt.serializers import PasswordField
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer

class MyTokenStudentSerializer(TokenObtainPairSerializer):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['student_id'] = serializers.CharField(required=False)
        self.fields['password'] = PasswordField(trim_whitespace=False)

    username_field = 'student_id'
    auth_fields = ['student_id']

Leave a comment