Запитання з тегом «django-rest-framework»

Потужний і гнучкий інструментарій для створення RESTful веб-API. Django - це веб-система Python високого рівня, яка заохочує швидкий розвиток та чистий, прагматичний дизайн. Побудований досвідченими розробниками, він піклується про великі труднощі веб-розробки, тому ви можете зосередитись на написанні програми, не потребуючи винаходити колесо. Це безкоштовно та з відкритим кодом.


15
Завантаження файлу Django Rest Framework
Я використовую Django Rest Framework та AngularJs для завантаження файлу. Мій файл перегляду виглядає так: 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) Оскільки останній …

3
Як змінити назву поля в Django REST Framework
Я намагаюся змінити ім'я поля моделі в DRF Serializer, як псевдонім у SQL. Я пробував різні методи, але не можу досягти успіху. 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 …

1
Коли використовувати Serializer's create () та ModelViewset create () perform_create ()
Я хочу пояснити наведену документацію django-rest-frameworkщодо створення об'єкта моделі. Поки що я виявив, що існує 3 підходи щодо того, як обробляти такі події. Метод серіалізатора create(). Ось документація class CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data) Метод ModelViewset create(). Документація class AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly] …

2
ModelSerializer з використанням властивості model
Я намагаюся серіалізувати модель, що містить поле властивості, яке я також хочу серіалізувати. 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') При спробі дістатися до пов'язаної URL-адреси, я отримую виняток серіалізатора …

8
Django Rest Framework - Як додати власне поле в ModelSerializer
Я створив ModelSerializerі хочу додати власне поле, яке не є частиною моєї моделі. Я знайшов опис, щоб додати сюди додаткові поля, і спробував наступне: customField = CharField(source='my_field') Коли я додаю це поле і викликаю свою validate()функцію, це поле не є частиною attrдикту. attrмістить усі зазначені поля моделі, крім зайвих. Тож …

7
Отримання значення зовнішнього ключа за допомогою серіалізаторів django-rest-framework
Я використовую фреймворк django rest для створення API. У мене є такі моделі: 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 Щоб створити серіалізатор для категорій, які я б зробив: class CategorySerializer(serializers.ModelSerializer): items = serializers.RelatedField(many=True) class …

11
Django rest framework вкладені самореференційні об'єкти
У мене є модель, яка виглядає так: 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) Мені вдалося отримати плоске представлення JSON усіх категорій за допомогою серіалізатора: class CategorySerializer(serializers.HyperlinkedModelSerializer): parentCategory = serializers.PrimaryKeyRelatedField() subcategories = serializers.ManyRelatedField() class Meta: model = Category fields = ('parentCategory', 'name', 'description', …

7
Python Django Rest Framework UnorderedObjectListWarning
Я перейшов з Django 1.10.4 на 1.11.1 і раптом я отримую купу цих повідомлень, коли запускаю тести: 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) Я простежив це до модуля Pagination Django: https://github.com/django/django/blob/master/django/core/paginator.py#L100 Здається, це пов’язано з моїм кодом набору …

26
django.db.migrations.exceptions.InconsistentMigrationHistory
Коли я запускаю python manage.py migrateсвій проект Django, я отримую таку помилку: Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "/home/hari/project/env/local/lib/python2.7/site- packages/django/core/management/__init__.py", line 363, in execute_from_command_line utility.execute() File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv self.execute(*args, **cmd_options) File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/base.py", line …

5
Як фільтрувати вкладений серіалізатор у Django Rest Framework?
У Django Rest Framework, як ви фільтруєте серіалізатор, коли він вкладений в інший серіалізатор? Мої фільтри вводяться у набори перегляду DRF, але коли ви викликаєте серіалізатор зсередини іншого серіалізатора, набір переглядів вкладеного серіалізатора ніколи не викликається, тому вкладені результати здаються нефільтрованими. Я спробував додати фільтр до вихідного набору переглядів, але, …

7
Структура відпочинку Django, яка серіалізує багато для багатьох
Як мені серіалізувати поле багато-до-багатьох у список чогось і повернути їх через систему відпочинку? У наведеному нижче прикладі я намагаюся повернути публікацію разом зі списком тегів, пов’язаних із нею. 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"??) …

8
Django Rest Framework із ChoiceField
У моїй користувацькій моделі є кілька полів, які є полями вибору, і я намагаюся зрозуміти, як найкраще реалізувати це в Django Rest Framework. Нижче наведено деякий спрощений код, щоб показати, що я роблю. # models.py class User(AbstractUser): GENDER_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) gender = models.CharField(max_length=1, choices=GENDER_CHOICES) # …

3
Який код стану HTTP слід повернути, якщо користувач намагається ввійти в систему з неправильним ім’ям користувача / паролем, але правильним форматом?
Подібне запитання розміщено тут: Який код стану HTTP підлягає поверненню службою REST API для помилки перевірки? Відповідь у поточній версії стверджує, що "Наприклад, якщо URI повинен мати дату ISO-8601, і ви виявите, що він має неправильний формат або посилається на 31 лютого, тоді ви повернете HTTP 400. Так само, якщо …

9
Як створити кілька екземплярів моделі за допомогою Django Rest Framework?
Я хотів би зберегти та оновити кілька екземплярів за допомогою Django Rest Framework за допомогою одного виклику API. Наприклад, скажімо, у мене є модель «Класу», в якій може бути кілька «Вчителів». Якби я це зробив, якби я хотів створити декількох вчителів і пізніше оновити всі їхні номери в класах? Чи …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.