An extension for graphene
Project description
Disclaimer
Проект находится на ранней стадии разработки
Как пользоваться?
Обязательные поля в инпутах
import graphene
from graphene_t2 import InputObjectType
class AddSomethingInput(InputObjectType):
field1 = graphene.String(required=True)
field2 = graphene.String(required=True)
class EditSomethingInput(AddSomethingInput):
class T2Meta:
required = {
False: '__all__', # или список полей
True: ['id'],
}
id = graphene.ID()
Примечания
- нет поддержки
graphene.Argument - порядок ключей (
True,False) в параметреrequiredважен. Изменения применяются в порядке их объявления
Документирование изменений (changes.py)
Автоматически изменяет описание полей. Может использоваться для генерации документации.
import graphene
from graphene_t2 import InputObjectType
from graphene_t2.features.changes import Alter, Deprecate
class SomeInputType(InputObjectType):
class T2Meta:
changes = [
Deprecate('legacy_field1', '03/20', replaced_by='new_field1'),
Deprecate('legacy_field2', '02/20', comment='Не используется'),
Alter('new_field1', '03/20', required=True),
]
legacy_field1 = graphene.String()
legacy_field2 = graphene.String()
new_field1 = graphene.String()
Сортировка (ordering.py)
В классе-нследнике ObjectType нужно объявить класс T2Meta.
Внутри него можно создать две переменные:
can_order_by- обязательный, список с названием полей, по которым можно производить сортировку;default_ordering- необязательный, сортировка по-умолчанию, строка или список строк с названием полей.
Примеры:
class Model1Type(DjangoObjectType):
class T2Meta:
can_order_by = ['id']
class Model2Type(DjangoObjectType):
class T2Meta:
can_order_by = ['id']
default_ordering = 'id' # или '-id'
class Model3Type(DjangoObjectType):
class T2Meta:
can_order_by = ['id', 'name', 'date_created']
default_ordering = '-date_created', 'name' # или ['-date_created', 'name']
Класс с объявлением методов нужно отнаследовать от graphene_t2.QueriesType, объявить вложенный класс T2Meta.
Внутри объявить переменную enable_ordering_for.
Возможны два вида значения:
__auto__- включает возможность сортировки, для методов для которых это возможно сделать;- список с названием полей
Ресолверы в качестве аргумента должны принимать **kwargs или sort_by.
from graphene_t2 import QueriesType
class Query1(QueriesType):
class T2Meta:
enable_ordering_for = '__auto__'
items = graphene.List(Model1Type)
def resolve_items(self, info, **kwargs):
pass
class Query2(QueriesType):
class T2Meta:
enable_ordering_for = ['items']
items = graphene.List(Model1Type)
def resolve_items(self, info, sort_by):
pass
Примечания
- Нет поддержки случаев, когда название поля в модели отличается от названия в API;
- Нет возможности сортировать по полям вложенных структур;
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file graphene-t2-0.4.0.tar.gz.
File metadata
- Download URL: graphene-t2-0.4.0.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87eaae89499fa7528a90d26a5ec11e890dbb265fece93516ecc31c7edd1fdf83
|
|
| MD5 |
de0e09b259c701ab2f596c687a613bb6
|
|
| BLAKE2b-256 |
443874e0c87dea7ec7c2f18b53b6403c4125cc0ffc1d2dee14e553fb4d1d9a14
|
File details
Details for the file graphene_t2-0.4.0-py3-none-any.whl.
File metadata
- Download URL: graphene_t2-0.4.0-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59a6ac9730c25f1c5afe03da675fb8ff7cd36ecee7a119166e7b3b87061e27b4
|
|
| MD5 |
b019a670385f808d50b0b4c726c8025c
|
|
| BLAKE2b-256 |
c3264eb55084e839de450fc72d854e91cea59f081d568cb82ce5e920444b6216
|