2017-02-24 78 views
1

http://127.0.0.1:8000/app_restFramework/users/,返回文本Django的REST框架:AttributeError的: '用戶' 對象有沒有屬性 '書'

AttributeError的在/ app_restFramework /用戶/ '使用者' 對象有沒有屬性 '書'

模型的.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()), 

回答

3

您沒有在ManyToManyField指定的related_name。默認情況下,它將是book_set。因此,你可以這樣做:

book_set = serializers.PrimaryKeyRelatedField(many=True, read_only=True) 

如果你想在串行使用books,你可以在Book模型做到這一點:

owner = models.ManyToManyField(User, related_name="books") 
相關問題