Django REST Framework学习-分页,通用视图,自定义RelatedField
2014-03-23 17:24
821 查看
使用通用视图+分页+自定义RelatedField
url:cardusers/pk/
传入模型Card的pk,获取当前Card的所有User中username和头像avatar,User是avatar的外键
1. 重载ListAPIView,加入分页
2. 自定义RelatedField
效果图
url:cardusers/pk/
传入模型Card的pk,获取当前Card的所有User中username和头像avatar,User是avatar的外键
1. 重载ListAPIView,加入分页
class UserSnapList(ListAPIView): paginate_by = 10 paginate_by_param = 'page_c' serializer_class = UserSnapshoot model = User def get_object(self, pk): try: return Card.objects.get(pk=pk) except Card.DoesNotExist: raise Http404 def get(self, request, *args, **kwargs): card = self.get_object(pk = kwargs.get('pk')) self.queryset = card.users.all() return super(UserSnapList, self).get(request, *args, **kwargs)
2. 自定义RelatedField
from django.contrib.auth import get_user_model from avatar.models import Avatar from avatar.util import get_default_avatar_url from rest_framework import serializers class PrimaryAvatarField(serializers.RelatedField): def field_to_native(self, obj, field_name): try: a_path = get_primary_avatar(obj, 30) if a_path: return self.to_native(a_path.avatar_url(30, 30)) else: return self.to_native(get_default_avatar_url()) except Avatar.DoesNotExist: return self.to_native(get_default_avatar_url()) def to_native(self, value): return value class UserSnapshoot(serializers.ModelSerializer): avatar_set = PrimaryAvatarField(many = True) class Meta: model = get_user_model() fields = ('username', 'avatar_set')
效果图
相关文章推荐
- Django框架学习-通用视图
- [置顶] django 1.11通用视图自带分页功能
- Django学习笔记之:【通用视图 (generic views) 】
- django Rest Framework----GenericAPIView 通用视图 GenericAPIView源码分析
- Django 学习小组:基于类的通用视图详解(一)
- Django笔记 自定义ListView通用视图
- 【django 学习笔记】10-通用视图
- python 学习笔记十八 django深入学习三 分页,自定义标签,权限机制
- django学习入门四:继续完善view视图,并介绍django的通用视图
- django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页
- (13)Django框架学习-通用视图
- 【JavaEE学习笔记】Hibernate_03_缓存机制,自定义通用HibernateDAO工具类
- django 创建一个通用视图
- django学习笔记(高级视图-支持验证)
- django 创建一个通用视图
- django通用分页封装
- Asp.net学习笔记----使用GridView+ObjectDataSource进行自定义分页排序
- 第三百一十四节,Django框架,自定义分页
- Android系列学习讲座之三--App自动更新之自定义进度视图和内部存储
- Django 开发学习笔记(2)- 请求一个自定义的路径,得到一个返回