2017-10-29 9 views
0

私はdjangoでカスタムユーザを作成したいと思いますが、私は多くの問題があります。ここではそのマイルコード:ユーザDjangoレストフレームワークを拡張します

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 

Serializers.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 
+0

移行しましたか? –

+0

はい、もちろんです! :) – Isma9

答えて

1

try

Profesionales.objects.create(user=user, **profesional_data) 
関連する問題