【发布时间】:2022-06-22 12:04:29
【问题描述】:
我有两个模型:Ticket 和 User。它们具有多对多关系,可以将许多用户分配给一张票。我正在使用 django-filter 包过滤票证模型。我可以成功地按单个用户过滤票证。例如:
http://localhost:8000/tickets?users=1
但我正在尝试按分配给票证的多个用户过滤票证。
http://localhost:8000/tickets?users__in=1,2
我尝试使用 __in 运算符,但出现此错误:
'list' object has no attribute 'split'
/usr/local/lib/python3.9/site-packages/django_filters/widgets.py, line 213, in value_from_datadict
这是我的查看代码:
class TicketViewSet(ModelViewSet):
queryset = Ticket.objects.all()
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = {
"status": ["in", "exact"],
"users": ["in", "exact"]
}
如何按用户多值过滤工单?
这是票证模型:
class Ticket:
subject = models.CharField(max_length=128)
status = models.CharField(max_length=7, default='new')
users = models.ManyToManyField(User)
is_deleted = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
【问题讨论】:
-
您能在此处添加
Ticket模型吗? -
@Metalgear,我用
Ticket模型更新了问题。
标签: django-rest-framework django-filter