Ich versuche, mit Django Rest Framework Reihen für eine bestimmte Tabelle zu erstellen. Ich sehe in der documentation, dass DRF es unterstützt.Massenerstellung mit ListSerializer von Django Rest Framework
views.py
class UserProfileFeedViewSet(viewsets.ModelViewSet):
"""Handles creating, reading and updating profile feed items."""
authentication_classes = (TokenAuthentication,)
queryset = models.ProfileFeedItem.objects.all()
serializer_class = serializers.ProfileFeedItemSerializer(queryset, many=True)
permission_classes = (permissions.PostOwnStatus, IsAuthenticated)
def perform_create(self, serializer):
"""Sets the user profile to the logged in user."""
serializer.save(user_profile=self.request.user)
serializers.py
class ProfileFeedItemListSerializer(serializers.ListSerializer):
def create(self,validated_data):
feed_list = [ProfileFeedItem(**item) for item in validated_data]
return ProfileFeedItem.objects.bulk_create(feed_list)
class ProfileFeedItemSerializer(serializers.ModelSerializer):
"""A serializer for profile feed items."""
class Meta:
model = models.ProfileFeedItem
list_serializer_class = ProfileFeedItemListSerializer
fields = ('id', 'user_profile', 'status_text', 'created_on')
extra_kwargs = {'user_profile': {'read_only': True}}
Wenn i Admin-Form versuchen Posting mit i diesen Fehler immer erhalten. Kannst du mir bitte helfen, herauszufinden, was ich hier falsch mache?
TypeError at /api/feed/ 'ProfileFeedItemListSerializer' object is not callable Request Method: GET Request URL: http://127.0.0.1:8080/api/feed/ Django Version: 1.11 Exception Type: TypeError Exception Value: 'ProfileFeedItemListSerializer' object is not callable Exception Location: /home/ubuntu/.virtualenvs/profiles_api/local/lib/python3.5/site-packages/rest_framework/generics.py in get_serializer, line 111 Python Executable: /home/ubuntu/.virtualenvs/profiles_api/bin/python Python Version: 3.5.2
Ich bin in der Lage, einzelne Wörterbuchdatensätze mit dieser Post-Liste von Wörterbüchern weiterhin zu werfen ** AttributError: 'Liste' Objekt hat kein Attribut 'Get' ** – Prasanna
Ich fand den Tippfehler in der Antwort, versuchen Sie es –
wenn Ich übergebe eine Liste von Datensätzen, die der Code-Flow nicht einmal perform_create erreicht. Es erwartet immer, dass die Daten als ein Wörterbuch weitergegeben werden. Es muss eine Möglichkeit geben, DRF mitzuteilen, dass die eingehenden Daten eine Liste von Wörterbüchern und kein einzelnes Wörterbuch sind. – Prasanna