http://127.0.0.1:8000/app_restFramework/users/,返回文字
/ app_restFramework / users /中的AttributeError '用户'对象没有属性'books'
models.py
class User(models.Model):
username = models.CharField(max_length=100)
class Book(models.Model):
name = models.CharField(max_length=100)
author = models.CharField(max_length=100)
publisher = models.CharField(max_length=100)
time = models.CharField(max_length=100)
owner = models.ManyToManyField(User)
serializers.py
from app_restFramework.models import Book,User
class UserSerializer(serializers.ModelSerializer):
books = serializers.PrimaryKeyRelatedField(many = True, read_only = True)
class Meta:
model = User
fields = ('id', 'username', 'books')
views.py
class UserList(generics.ListCreateAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
urls.py
url(r'^app_restFramework/users/$', app_restFramework.views.UserList.as_view() ),
答案 0 :(得分:5)
您尚未在related_name
中指定ManyToManyField
。默认情况下,它将是book_set
。因此你可以这样做:
book_set = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
如果您想在序列化程序中使用books
,可以在Book
模型中执行此操作:
owner = models.ManyToManyField(User, related_name="books")