我使用django-filter
和我有两个模型CustomUser
和Shop
.如何改变过滤器选择queryset,使用户(request.user
)可以只过滤他的商店?
用户
class CustomUser(AbstractBaseUser, PermissionsMixin):
shop = models.ManyToManyField(Shop, blank=True, related_name='custom_user')
字符串
店铺
class Shop(models.Model):
address = models.CharField(_('Address'), unique=True, max_length=64, blank=False, null=False, db_index=True)
型
filters.py(示例网站)
shops = Shop.objects.filter(is_active=True)
SHOP_CHOICES = [('All', 'All')]
for x in shops:
SHOP_CHOICES.append((x.address, x))
SHOP_CHOICES = tuple(SHOP_CHOICES)
class ShopFilter(django_filters.FilterSet):
address = django_filters.MultipleChoiceFilter(choices=SHOP_CHOICES)
class Meta:
model = Shop
fields = ['address']
型
views.py
f = ShopFilter(request.GET)
型
1条答案
按热度按时间r7s23pms1#
您可以使用
qs
方法在返回查询集之前对其进行过滤。请参见过滤主`q。
所以在你的情况下,你应该能够说:
字符串
我还没有测试过这个方法,但是如果你想对查询进行任何修改的话,这绝对是个好方法。