- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在覆盖 ModelViewSet 中的 get_queryset 以支持“我”作为过滤器和多个 pk 搜索:
class UserViewSet(viewsets.ModelViewSet):
queryset = UserProfile.objects.all()
serializer_class = UserProfileSerializer
def get_queryset(self):
qs = UserProfile.objects.all()
if 'pk' in self.kwargs:
pk_user = self.kwargs['pk']
if ',' in pk_user: # Multiquery
pk_users = pk_user.split(',')
qs = qs.filter(pk__in=pk_users)
elif pk_user == "me":
qs = qs.filter(pk=self.request.user)
else:
qs = qs.filter(pk=pk_user)
# By default return all the items
return qs
我正在使用以下序列化器:
class UserProfileSerializer(serializers.ModelSerializer):
avatar_thumbnail_small = serializers.ImageField(read_only=True)
avatar_thumbnail_medium = serializers.ImageField(read_only=True)
id = serializers.CharField(source='user.id')
username = serializers.CharField(source='user.username')
firstname = serializers.CharField(source='user.first_name')
lastname = serializers.CharField(source='user.last_name')
class Meta:
model = UserProfile
fields = ('id', 'username', 'firstname', 'lastname', 'karma', 'avatar_thumbnail_small', 'avatar_thumbnail_medium', 'contacts', 'suggested_contacts')
并且我已经在 urls.py 中注册了 url
router = routers.DefaultRouter()
router.register(r'users', app.views_rest.UserViewSet, base_name="users")
但是当我尝试获取 url/api/users/2,3/或/api/users/me/时,它会给出一条 json 消息,说明未找到详细信息。
/api/users/2/、/api/users/3/和/api/users/工作正常。
感谢您的帮助。
最佳答案
这将不起作用,因为检索操作之后还会调用 get_object
而您没有覆盖它。参见 https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/generics.py#L76
关于django - 在 ModelViewSet 中覆盖 get_queryset 时找不到详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39244925/
我收到以下错误: ImproperlyConfigured at /elearning/7447932a-6044-498a-b902-97cbdd0a4001/ DetailView is miss
我通过外键字段进行了一种过滤,具有两个搜索条件:OR 和 AND 以及多项选择。 forms.py class EmployeeSkillFilter(forms.ModelForm): sk
我有一个页面,显示将根据用户选择的月份显示每月收入。 在 HTML 中,有一个包含所有可能的输入。现在在我的 I'm returning a new variable for use in the t
这两段代码乍一看是相同的: class IndexView(generic.ListView): template_name = 'polls/index.html' context_
我最近了解到,当您特别想要执行默认 View 以外的操作时,您应该重写 get 方法: class ExampleView(generic.ListView): template_name =
因为 get_queryset() 只返回一个查询集,我需要查询集 search_store 的长度到模板文件。因此,我尝试通过 get_context_data 将值发送到模板。 我知道我可以通过
我有内置的 Django API,我有返回所有对象的端点。我希望用户为我提供关键字来过滤这个查询集。最好的方法是什么。以及如何做到这一点? 它在 get_queryset 中吗?如果是,你能帮我吗!?
我的代码是 class Leads(LoginRequiredMixin, ListView): def get_queryset(self): q = self.request.GET.get('q
我正在使用 Django 细节 View 。最初,我使用了 URL 模式 url(r'^todo/details/(?P[\d]+)', views.todoDetailView.as_view(),
模型.py: from django.contrib.auth.models import User class Location(models.Model): user = models.F
我更改了 .all 方法,因此它只会选择具有 published=True 的实例: class EventManager(models.Manager): def all(self, *ar
我无法让我的自定义管理器工作... class PublicArtigoManager(models.Manager): def get_queryset(self): ret
我正在使用 Django 2.2.10。我有一个搜索栏,它使用 searchresultsview(listview) 类中的 get_queryset(self) 将搜索结果返回到显示页面。我设置了
我正在尝试关注这个 documentation .我想以某种方式将参数传递给 get_queryset,但不知道如何传递。下面的演示不工作。 class ContextAwareNotificatio
我在 DRF 文档上读到,您可以通过覆盖 .get_queryset() 来过滤查询参数。我正在寻找最佳实践,返回什么,以防过滤器不正确以及在哪里返回错误消息。 我提到的文档是 here我在下面包含源
我有这个 ModelViewset 和一个 ModelSerializer class GenerarFacturaViewset(viewsets.ModelViewSet): serial
我正在使用自定义 mixin 将过滤器应用于使用 MultipleObjectMixin 分页的基于类的 View 的查询集。当我应用过滤器以使当前页面超出数据集范围时,显然会得到 404。我想要做的
我正在覆盖 ModelViewSet 中的 get_queryset 以支持“我”作为过滤器和多个 pk 搜索: class UserViewSet(viewsets.ModelViewSet): q
我正在尝试通过 get_queryset() 函数和使用 order_by() 来编辑 listView 中的顺序当我尝试打印生成的查询时,它会忽略 order_by 查询并仅使用我的模型类中 Met
基本上,我有一个目录 View 集。在 ListView 中,我想进行一些过滤并相应地返回。 相关的目录模型字段是: class Catalog(models.Model): name = m
我是一名优秀的程序员,十分优秀!