def sub_category(self, request): """ 获取某个父类的子类 ``GET`` `tiles/categorys/subcategory <http://192.168.1.222:8080/v1/tiles/categorys/subcategory>`_ """ self.fields = ('new_category_id','name','parent_id','parent_name','sort') is_tips = request.GET.get('is_tips', 1) parent_id = request.GET.get('parent_id') identity = request.GET.get('identity') try: if parent_id: # 特定父类的子类 qs = NewTileCategory.objects.get_one_parent_sub(parent_id) else: # 某个类型的子类 qs = NewTileCategory.objects.get_category(layer='sub', tips=is_tips, identity=identity) return query_range_filter(request.GET, qs, "categorys") except Exception, e: print e return rc.BAD_REQUEST
def read(self, request): ''' 获取瓦片类型列表 ``GET`` `tiles/types/ <http://192.168.1.222:8080/v1/tiles/types>`_ ''' qs = TileType.objects.all() return query_range_filter(request.GET, qs, "types")
def read(self, request): ''' 获得瓦片标签列表 ``GET`` `tiles/tags/ <http://192.168.1.222:8080/v1/tiles/tags>`_ ''' qs = TileTag.objects.all() return query_range_filter(request.GET, qs, "tags")
def parent_category(self, request): """ 获取父类 ``GET`` `tiles/categorys <http://192.168.1.222:8080/v1/tiles/categorys>`_ """ self.fields = ('new_category_id','name','sort') identity = request.GET.get('identity') is_tips = request.GET.get('is_tips', False) qs = NewTileCategory.objects.get_category(layer='parent', tips=is_tips, identity=identity) return query_range_filter(request.GET, qs, "categorys")
def read(self, request): """ 获得所有内容(教师使用) ``GET`` `tiles/ <http://192.168.1.222:8080/v1/tiles>`_ :param uid: 用户 id. 用于查询与某用户相关的瓦片 :param class_id: 班级 id, 查询用户所在班级相关的瓦片 获得某条内容的详细信息 ``GET`` `tiles/show/ <http://192.168.1.222:8080/v1/tiles/show>`_ :param id: 某个瓦片的 id """ params = request.GET tile_id = params.get("id") user_id = params.get("uid") class_id = params.get("class_id") if tile_id: try: tile = Tile.objects.get(pk=tile_id) tile.api_count += 1 tile.save() pro = request.user.get_profile() pro.last_access = datetime.datetime.now() pro.save() return tile except Tile.DoesNotExist: return rc.NOT_HERE if not user_id and not class_id: #return rc.BAD_REQUEST return rc.bad_request( "user_id or class_id is requierd") q = Q(user__pk=user_id) if user_id else Q(group__pk=class_id) queryset = Tile.objects.filter(q).order_by("-ctime","-id") return query_range_filter(params, queryset, "tiles")
ids = request.GET.get("tag_id", "") qs = Tile.objects.get_tiles_edu(request.user) if ids: qs = qs.filter(tags__pk__in=ids.split(",")) try: category_ids = request.GET.get("category_id", "") if category_ids: qs = qs.filter(category__pk__in=category_ids.split(",")) except Exception, e: pass #return query_range_filter(request.GET, qs, "tiles") rs = query_range_filter(request.GET, qs, "tiles") self.cache_last_tile_id(rs,request.user) return rs def for_baby_with_promotion(self, request): ''' ``by_babys`` + ``by_tags`` 接口的所有内容(家长使用) ``GET`` `tiles/by_babys_with_push/ <http://192.168.1.222:8080/v1/tiles/by_babys_with_push>`_ ''' qs = Tile.objects.get_tiles_all_login(request.user) try: