2017-08-16 12 views
0

抽象的なユーザを使用してinbuiltユーザモデルをカスタマイズしました。私は、各ユーザーの車両に似ているユーザーモデルと1対1の関係を持つ別のモデル車両を作った。しかし、それはuser_idごとに1台の車両を格納しています。 1人のユーザーに複数の車両を保管する必要があります。私のコードの下に与えられている - Models.pydjango apiで1つのuser_idに複数の車両を格納する必要があります

class User(AbstractUser): 
    phone_number = models.IntegerField(null=True) 
    otp = models.IntegerField(null=True) 


class Vehicle(models.Model): 
    user = models.OneToOneField(User) 
    maker = models.CharField(max_length=500, blank=True) 
    car_model = models.CharField(max_length=30, blank=True) 

Serializer.py

class VehicleSerializer(serializers.ModelSerializer): 
user_id = serializers.IntegerField() 
class Meta: 
    model = Vehicle 
    fields = ('maker', 'car_model', 'user_id')                  

def create(self, validated_data): 
    maker = validated_data.pop('make', None) 
    car_model = validated_data.get('car_model', None) 
    user_id = validated_data.get('user_id', None) 
    instance = self.Meta.model(**validated_data) 

    if user_id is not None: 
     instance.user_id = user_id 
     instance.save() 
    if car_model is not None: 
     instance.car_model = car_model 
     instance.save() 
    return instance 

Views.py

@api_view(['POST']) 
def vehicle_add(request): 
car_model = request.data.get('car_model') 
user_id = request.user.id 
serializer = VehicleSerializer(data={'user_id': user_id, 'car_model': car_model}) 
if serializer.is_valid(): 
    serializer.save() 
    message = "i suceeded" 
    return Response(message, status=status.HTTP_201_CREATED) 
else: 
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) 

私は複数の車両を保存する方法を知っておく必要がありますsingle user_idの下にあります。ありがとう

答えて

0

django one-to-one django one-to-oneの関係はまさにそれと同じですが、それは1つのモデルから1つのモデルへの関係です。あなたが探している関係はmany-to-oneです。ここにドキュメントをチェックアウト:

https://docs.djangoproject.com/en/1.11/topics/db/examples/many_to_one/

は、あなたがそれ以上の質問がある場合は、私に教えてください!

関連する問題