DRF tokit.
Project description
Usage Examples
view
# Example usage in a DRF ViewSet:
class UserViewSet(OrmOnlyViewMixin, ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
def get_queryset(self):
qs = super().get_queryset()
return self.hook_orm_fields(qs)
orm service
import json
import logging
from common.init.init_django import initialize_django
initialize_django()
from drftokit import OrmOnlyServiceMixin
from apps.user.srv import UserSrv
from apps.user.serializers import UserSerializer
logger = logging.getLogger('debug')
def main():
# 在 ORM 查询中使用 only,并取出第一个对象用于序列化
qs = UserSrv.queryset.filter(pk__lt=10)
qs_o = OrmOnlyServiceMixin.only(serializer_class=UserSerializer, qs=qs)
logger.info(f"qs_o_query: {qs_o.query}")
"""
qs_o_query:
SELECT
`user`.`id`, `user`.`username`, `user`.`nickname`, `user`.`avatar`
FROM `user`
WHERE (`user`.`deleted` = False AND `user`.`id` < 10) ORDER BY `user`.`id` DESC
"""
# s_a = OrmOnlySrv(s=UserSerializer, qs=qs)
# logger.info(f"data {s_a.data_list}")
#
# s_o = OrmOnlySrv(s=UserSerializer, qs=qs)
# logger.info(f"data {s_o.data}")
return
if __name__ == '__main__':
main()
drf list serializer
- orm_only_fields
class TplListSerializer(UpdateInfoSerializer, CreatorInfoSerializer, TplSerializer):
"""
列表: 简化字段,避免复杂逻辑
"""
class Meta:
model = Tpl
orm_only_fields = True
fields = [
"id",
"name",
]
from drftokit import OrmOnlyViewMixin
clsass Viewxxx(OrmOnlyViewMixin):
def get_queryset(self):
queryset = self._get_queryset()
queryset = self.hook_orm_fields(qs=queryset)
return queryset
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
drftokit-0.1.7.tar.gz
(3.6 kB
view details)
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 drftokit-0.1.7.tar.gz.
File metadata
- Download URL: drftokit-0.1.7.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13157c50c1642728b71837fdea36f1d8f2714ba7ca986ae66b3bb7edc8ca0196
|
|
| MD5 |
1e4a19aefc5267844017bf5ce5079d24
|
|
| BLAKE2b-256 |
3db889c001e76a189c8c92a7cae52f796448b7954e15911a81cf58f1f537b5a2
|
File details
Details for the file drftokit-0.1.7-py3-none-any.whl.
File metadata
- Download URL: drftokit-0.1.7-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71b34dfdff3b03a401f13c6498a83bb3cc2beac440208e7c4e1afae4155e8250
|
|
| MD5 |
76bc54427345c40689c3ca944c19856c
|
|
| BLAKE2b-256 |
b35efd2bc585fe9a1ea5250c691d16b13c3033d8c1cc35f3abdeafd5d5f9160f
|