django rest frameworkで以下のようなモデルを作成しました。
python
1# models.py 2class Post(models.Model): 3 author = models.ForeignKey('accounts.CustomUser', on_delete=models.CASCADE) 4 title = models.CharField(max_length=200) 5 text = models.TextField() 6 7# serializer.py 8class UserSerializer(serializers.ModelSerializer): 9 class Meta: 10 model = User 11 fields = ('username', 'email') 12 extra_kwargs = { 'username': { 'read_only': False } } 13 14class PostSerializer(serializers.ModelSerializer): 15 author = UserSerializer() 16 class Meta: 17 model = Post 18 fields = ('author', 'title', 'text', 'pk') 19 20 def create(self, validated_data): 21 user_data = validated_data.pop('author') 22 user = User.objects.get(author=user_data) 23 post = Post.objects.create(author=user, **validated_data) 24 return post
以下の内容でPOSTしてみた結果「同じユーザ名がすでに登録済みです」と表示されPOSTに失敗してしまいます。
{ { "author": { "username": "user1", "email": "user1@user.com" }, "title": "タイトル", "text": "内容", } }
原因や解決方法がわかる方が居りましたらご教授願いたいです。
よろしくお願いします。
あなたの回答
tips
プレビュー