0
我正在尝试创建用户,其中用户模型有两个用户配置文件,例如,师生。在创建用户时,我还想在Teacher或Student配置文件中创建User实例。Django使用两个用户配置文件模型注册api
这里是我的串行类:
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = ('id', 'user_id')
class TeacherSerializer(serializers.ModelSerializer):
class Meta:
model = Teacher
fields = ('id', 'user_id')
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = (
'id',
'username',
'password',
'email',
'user_type'
)
extra_kwargs = {
'password': {'write_only': True},
}
def create(self, validated_data):
user = User.objects.create_user(**validated_data)
return user
这里的风俗寄存器观点:
class CreateUserView(CreateAPIView):
model = User
permission_classes = [
permissions.AllowAny # Or anon users can't register
]
serializer_class = UserSerializer
现在,我可以创建用户和而创建的用户配置文件根据user_type
参数是对我来说是挑战。
所以,如果user_type
是学生,我需要创建用户实例为StudentProfile以及(在学生档案表中的新行)
我忘了添加,我在学生模型中有'create_student_profile'方法,我试图调用这个方法来创建学生实例。 – user8169843
上面的代码工作得很好,但我仍然不确定为什么我不能使用'create_student_profile' – user8169843
请告诉你在问题代码中的方法 –