使用django rest框架发布时发生AssertionError
使用django rest框架发布时发生AssertionError 发生错误之前的过程如下使用django rest框架发布时发生AssertionError,django,django-rest-framework,Django,Django Rest Framework,使用django rest框架发布时发生AssertionError 发生错误之前的过程如下 我设置了url模式、视图和序列化器类 看法 序列化程序.py from django.contrib.auth import get_user_model from rest_framework import serializers from rest_framework.serializers import ModelSerializer from instagram.models import Po
from django.contrib.auth import get_user_model
from rest_framework import serializers
from rest_framework.serializers import ModelSerializer
from instagram.models import Post
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()
fields = ['username','email']
class PostSerializer(ModelSerializer):
author = AuthorSerializer()
class Meta:
model = Post
fields = [
'pk',
'author',
'message',
'created_at',
'updated_at',
'is_public',
]
感谢您让我知道如何修复它它假定保存您在
后序列化程序中提供的作者
详细信息。您可以有自己的create()方法,如下所示-
def create(self, validate_data):
data = validated_data
author = data.get('author')
# You can use author details here
data.pop('author')
return Post.objects.create(**data)
将序列化程序中的read\u
设置为AuthorSerializer(read\u only=True)
from django.contrib.auth import get_user_model
from rest_framework import serializers
from rest_framework.serializers import ModelSerializer
from instagram.models import Post
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()
fields = ['username','email']
class PostSerializer(ModelSerializer):
author = AuthorSerializer()
class Meta:
model = Post
fields = [
'pk',
'author',
'message',
'created_at',
'updated_at',
'is_public',
]
http://127.0.0.1:8000/post/
def create(self, validate_data):
data = validated_data
author = data.get('author')
# You can use author details here
data.pop('author')
return Post.objects.create(**data)