python - 字段名称选择 'reference' 不是有效选择问题

标签 python django django-models django-rest-framework

我正在尝试创建一个 View 集,我想在其中过滤所有具有相同引用编号的记录。成员模型中有一个引用模型字段,但它告诉我它是一个无效字段。

这是 View 集:

from groups.models import Member
from ..serializers import MemberSerializer
from rest_framework import viewsets

class MemberViewSet(viewsets.ModelViewSet):
    queryset = Member.objects.filter(field_name='reference')
    serializer_class = MemberSerializer

这是模型:

class Member(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    group = models.ForeignKey(Group, on_delete=models.CASCADE)
    reference = models.CharField(max_length=22)
    balance = models.DecimalField(max_digits=12, decimal_places=2)
    open_tabs = models.IntegerField()
    created = models.DateTimeField(auto_now_add=True)

这是网址:

from groups.api.views.memberViews import MemberViewSet
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'', MemberViewSet, base_name='member')
urlpatterns = router.urls

所以我想过滤掉所有具有相同引用字段值的成员对象...

最佳答案

如果您希望成员在您的 View 集中具有特定的reference,您应该覆盖get_queryset方法并将参数添加到url .

在 View 集中:

from groups.models import Member
from ..serializers import MemberSerializer
from rest_framework import viewsets

class MemberViewSet(viewsets.ModelViewSet):
    serializer_class = MemberSerializer
    def get_queryset(self):
        reference = self.kwargs['reference']
        return Member.objects.filter(reference=reference)

在 url 中:

from groups.api.views.memberViews import MemberViewSet
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'(?P<reference>[-\w]+)', MemberViewSet, base_name='member')
urlpatterns = router.urls

参见 the drf guide to filtering

关于python - 字段名称选择 'reference' 不是有效选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56124662/

相关文章:

python - 有没有等同于 Python 的 range() 的 Django 模板语言?

Django 管理员 : change displayed column name in inline ManyToMany field

javascript - 在不重新加载页面的情况下在 html 模板中发送响应

python - 为 parent 与 child 和 sibling 建立 M2M 关系

用于创建和更新的基于 Django 类的 View

python - 如何计算列表中groupby的加权平均值或总和?

python - PermissionsMixin 和 PermissionRequiredMixin 相同吗?

python - 旋转分类 Bokeh 图的次要刻度标签

python - 应用条件 If 语句的最佳方法

django - 基于计算的模型过滤