Djangoでアプリケーションを作成しています。
DBへデータ挿入時にモデルの外部キーのフィールドに値をセットして挿入したいのですが、
"Column 'user_id' cannnot be null"
が出ることから、userがうまくセットできていないみたいです
解決法を教えていただきたいです。
よろしくお願いします。
models.py
Python
1from django.db import models 2 3class User(models.Model): 4 name = models.CharField(max_length=100, null=False, blank=False) 5 email = models.CharField( 6 max_length=100, unique=True, null=False, blank=False) 7 password = models.TextField(null=False, blank=False) 8 zipcode = models.CharField(max_length=7, null=False, blank=False) 9 address = models.CharField(max_length=200, null=False, blank=False) 10 telephone = models.CharField(max_length=15, null=False, blank=False) 11 12 class Meta: 13 db_table = 'users' 14 15 def __str__(self): 16 return self.name 17 18class Order(models.Model): 19 user = models.ForeignKey(User, on_delete=models.CASCADE) 20 status = models.IntegerField(null=False) 21 total_price = models.IntegerField(null=False) 22 23 class Meta: 24 db_table = 'orders'
serializers.py
python
1from rest_framework import serializers 2from . import models 3 4class UserSerializer(serializers.ModelSerializer): 5 class Meta: 6 model = models.User 7 fields = '__all__' 8 9class OrderSerializer(serializers.ModelSerializer): 10 user = UserSerializer(read_only=True) 11 12 class Meta: 13 model = models.Order 14 # fields = '__all__' 15 fields = '__all__'
views.py
python
1@api_view(['GET','POST']) 2def cart(request): 3 if request.method == 'POST': 4 user = models.User.objects.get(pk=2) 5 request_data = request.data 6 request_data['user'] = user 7 serializer = serializers.OrderSerializer(data=request_data) 8 if serializer.is_valid(): 9 serializer.save() 10 return Response(status=status.HTTP_200_OK) 11 else: 12 return Response( 13 {"errors": serializer.errors}, 14 status=status.HTTP_400_BAD_REQUEST) 15