【问题标题】:Extends User Django rest framework扩展用户 Django 休息框架
【发布时间】:2017-10-29 12:22:29
【问题描述】:

我想在 django 中创建一个自定义用户,但是我有很多问题。这是它的mi代码:

models.py

class Profesionales(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    dni = models.CharField(max_length=9)
    numColegiado = models.CharField(max_length=8)
    valoracionMedia = models.FloatField()
    numVotos = models.IntegerField()

    def __str__(self):
        return self.numColegiado, self.user.first_name

序列化器.py

class ProfesionalesSerializer(serializers.ModelSerializer):

    class Meta:
        model = Profesionales
        fields = ('numColegiado')

class UserSerializer(serializers.ModelSerializer):

    profesionales = ProfesionalesSerializer

    class Meta:
        model = User
        fields = (
            'id', 'username', 'email', 'first_name', 'last_name', 'password', 'profesionales'
        )

    def create(self, validated_data):
        profesional_data = validated_data.pop('profesionales')
        user = User.objects.create(**validated_data)
        Profesionales.objects.create(**profesional_data)
        return user

views.py

#Listar todos los profesionales o crear uno
#profesionales/
class ProfesionalesList(APIView):
    def get(self, request ):
        profesionales = User.objects.all()
        profesionalSerializer = UserSerializer(profesionales, many=True)
        return Response(profesionalSerializer.data)

    def post(self, request):
        profesionalSerializer = UserSerializer(data=request.data)
        if profesionalSerializer.is_valid():
            profesionalSerializer.save()
            return Response(profesionalSerializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(profesionalSerializer.errors, status=status.HTTP_400_BAD_REQUEST)

错误!:

OperationalError at /profesionales/
no such column: profesionales_profesionales.user_id

Request Method: GET
Request URL: http://127.0.0.1:8000/profesionales/
Django Version: 1.11.6

【问题讨论】:

  • 你迁移了吗?
  • 是的,当然! :)

标签: django django-rest-framework django-users


【解决方案1】:

试试

 Profesionales.objects.create(user=user, **profesional_data)

【讨论】:

    猜你喜欢
    • 2019-03-03
    • 2013-04-08
    • 2021-11-26
    • 1970-01-01
    • 2016-04-08
    • 2015-02-25
    • 2016-04-25
    相关资源
    最近更新 更多