Pytania otagowane jako django-rest-framework

Potężny i elastyczny zestaw narzędzi do tworzenia interfejsów API RESTful Web API. Django to wysokopoziomowa platforma internetowa w języku Python, która zachęca do szybkiego tworzenia i czystego, pragmatycznego projektowania. Zbudowany przez doświadczonych programistów rozwiązuje większość problemów związanych z tworzeniem stron internetowych, dzięki czemu możesz skupić się na pisaniu aplikacji bez konieczności odkrywania na nowo koła. Jest darmowy i open source.

2
ModelSerializer przy użyciu właściwości modelu
Próbuję serializować model zawierający pole właściwości, które również chcę serializować. models.py: class MyModel(models.Model): name = models.CharField(max_length=100) slug = models.AutoSlugField(populate_from='name') @property def ext_link(self): return "/".join([settings.EXT_BASE_URL, self.slug]) serializers.py: class MyModelSerializer(serializers.ModelSerializer): class Meta: model = MyModel fields = ('name', 'ext_link') Podczas próby uzyskania dostępu do powiązanego adresu URL otrzymuję wyjątek serializatora (KeyError) we …

1
Kiedy używać funkcji create () Serializera i create () perform_create () modelu ModelViewset
Chcę wyjaśnić podaną dokumentację django-rest-frameworkdotyczącą tworzenia obiektu modelowego. Jak dotąd odkryłem, że istnieją 3 podejścia do radzenia sobie z takimi zdarzeniami. Metoda serializatora create(). Oto dokumentacja class CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data) Metoda ModelViewset create(). Dokumentacja class AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly] Metoda ModelViewset …

8
Django Rest Framework: Dynamicznie zwracaj podzbiór pól
Problem Zgodnie z zaleceniami zamieszczonymi w blogu Best Practices for Designing a Pragmatic RESTful API , chciałbym dodać fieldsparametr zapytania do interfejsu API opartego na Django Rest Framework, który pozwala użytkownikowi wybrać tylko podzbiór pól na zasób. Przykład Serializator: class IdentitySerializer(serializers.HyperlinkedModelSerializer): class Meta: model = models.Identity fields = ('id', 'url', …

15
Przesyłanie plików Django Rest Framework
Do przesłania pliku używam Django Rest Framework i AngularJs. Mój plik widoku wygląda następująco: class ProductList(APIView): authentication_classes = (authentication.TokenAuthentication,) def get(self,request): if request.user.is_authenticated(): userCompanyId = request.user.get_profile().companyId products = Product.objects.filter(company = userCompanyId) serializer = ProductSerializer(products,many=True) return Response(serializer.data) def post(self,request): serializer = ProductSerializer(data=request.DATA, files=request.FILES) if serializer.is_valid(): serializer.save() return Response(data=request.DATA) Ponieważ ostatnia linia …

3
Jak zmienić nazwę pola w Django REST Framework
Próbuję zmienić nazwę pola modelu w serializatorze DRF, jak alias w języku SQL. Próbowałem różnych metod, ale nie mogę. models.py class Park(models.Model): name = models.CharField(max_length=256) alternate_name = models.CharField(max_length=256, blank=True) objects = models.GeoManager() class Meta: db_table = u'p_park' def __unicode__(self): return '%s' % self.name def alias_alternate_name(self): return self.alternate_name serializers.py class ParkSerializer(serializers.ModelSerializer): …

8
Django Rest Framework - Jak dodać niestandardowe pole w ModelSerializer
Utworzyłem ModelSerializeri chcę dodać pole niestandardowe, które nie jest częścią mojego modelu. Znalazłem opis, aby dodać dodatkowe pola tutaj i starałem się następujące elementy: customField = CharField(source='my_field') Kiedy dodam to pole i wywołam moją validate()funkcję, to pole nie jest częścią attrdyktatu. attrzawiera wszystkie określone zmienne modelu z wyjątkiem pól dodatkowych. …

7
Pobieranie wartości klucza obcego za pomocą serializatorów django-rest-framework
Używam struktury django rest do tworzenia API. Mam następujące modele: class Category(models.Model): name = models.CharField(max_length=100) def __unicode__(self): return self.name class Item(models.Model): name = models.CharField(max_length=100) category = models.ForeignKey(Category, related_name='items') def __unicode__(self): return self.name Aby utworzyć serializator dla kategorii, zrobiłbym: class CategorySerializer(serializers.ModelSerializer): items = serializers.RelatedField(many=True) class Meta: model = Category ... a …

11
Zagnieżdżone obiekty odwołujące się do siebie we frameworku Django
Mam model, który wygląda tak: class Category(models.Model): parentCategory = models.ForeignKey('self', blank=True, null=True, related_name='subcategories') name = models.CharField(max_length=200) description = models.CharField(max_length=500) Udało mi się uzyskać płaską reprezentację json wszystkich kategorii z serializatorem: class CategorySerializer(serializers.HyperlinkedModelSerializer): parentCategory = serializers.PrimaryKeyRelatedField() subcategories = serializers.ManyRelatedField() class Meta: model = Category fields = ('parentCategory', 'name', 'description', 'subcategories') Teraz …

7
Python Django Rest Framework UnorderedObjectListWarning
Zaktualizowałem Django z wersji 1.10.4 do 1.11.1 i nagle otrzymuję mnóstwo takich komunikatów, gdy uruchamiam testy: lib/python3.5/site-packages/rest_framework/pagination.py:208: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <QuerySet [<Group: Requester>]> paginator = self.django_paginator_class(queryset, page_size) Prześledziłem to z powrotem do modułu paginacji Django: https://github.com/django/django/blob/master/django/core/paginator.py#L100 Wydaje się, że jest to związane z …

5
Jak odfiltrować zagnieżdżony serializator w Django Rest Framework?
W Django Rest Framework, jak filtrować serializator, gdy jest on zagnieżdżony w innym serializatorze? Moje filtry są nakładane w zestawach widoków DRF, ale kiedy wywołujesz serializator z innego serializatora, zestaw widoków zagnieżdżonego serializatora nigdy nie jest wywoływany, więc zagnieżdżone wyniki są wyświetlane jako niefiltrowane. Próbowałem dodać filtr na źródłowym zestawie …

7
Framework Django REST serializujący wiele pól
Jak serializować pole wiele-do-wielu na listę czegoś i zwrócić je przez resztę? W poniższym przykładzie próbuję zwrócić post wraz z listą powiązanych z nim tagów. models.py class post(models.Model): tag = models.ManyToManyField(Tag) text = models.CharField(max_length=100) serializers.py class PostSerializer(serializers.ModelSerializer): class Meta: model = Post fields = ("text", "tag"??) views.py class PostViewSet(viewsets.ReadOnlyModelViewSet): queryset …

4
Usunięto poświadczenia autoryzacji - django, elastyczna łodyga fasoli, oauth
Zaimplementowałem REST API w django z django-rest-framework i użyłem oauth2 do uwierzytelnienia. Testowałem z: curl -X POST -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=password&username=YOUR_USERNAME&password=YOUR_PASSWORD" http://localhost:8000/oauth2/access_token/ i curl -H "Authorization: Bearer <your-access-token>" http://localhost:8000/api/ na hoście lokalnym z pomyślnymi wynikami zgodnymi z dokumentacją. Podczas przekazywania tego do istniejącej instancji łodygi elastycznej fasoli AWS otrzymałem: { "detail" : …

1
Django REST Framework (DRF): TypeError: register () otrzymał nieoczekiwany argument słowa kluczowego „base_name”
Zaktualizowałem do djangorestframework==3.11.0ze starszej wersji. Teraz mam ten błąd, TypeError: register () otrzymał nieoczekiwany argument słowa kluczowego „base_name” Traceback ... ... ... File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/abu/projects/django-example/django2x/urls.py", line 21, in <module> path('sample/', include('sample.urls')), File "/home/abu/.virtualenvs/django-example/lib/python3.6/site-packages/django/urls/conf.py", line 34, in include urlconf_module = import_module(urlconf_module) File "/usr/lib/python3.6/importlib/__init__.py", line 126, …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.