2017-02-24 2 views
1

http://127.0.0.1:8000/app_restFramework/users/, TextDjango REST Rahmen: Attribute: 'User' Objekt hat kein Attribut 'Bücher'

Attribute bei/app_restFramework/users/ 'User' Objekt zurückgeben hat kein Attribut

Modelle 'Bücher' .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()), 

Antwort

3

Sie nicht die related_name im ManyToManyField angegeben haben. Standardmäßig ist es book_set. Daher können Sie tun:

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

Wenn Sie books in den Serializer verwenden möchten, können Sie dies im Book Modell:

owner = models.ManyToManyField(User, related_name="books") 
Verwandte Themen