Django 如何在URL中发送信息?
我正在尝试创建一个产品过滤器。 我正在URL中发送用户选择 如果用户选择size=L,则使用Django 如何在URL中发送信息?,django,django-forms,url-encoding,Django,Django Forms,Url Encoding,我正在尝试创建一个产品过滤器。 我正在URL中发送用户选择 如果用户选择size=L,则使用request.GET 我收到: {'size':['L']} 但是我想收到:{'size':{'op':'in','attri':'L'} 这可能吗? 请帮忙 我的模特是 class ProductAttribute(models.Model): slug = models.SlugField(max_length=50, unique=True) name = models.CharF
request.GET
我收到:
{'size':['L']}
但是我想收到:{'size':{'op':'in','attri':'L'}
这可能吗?
请帮忙
我的模特是
class ProductAttribute(models.Model):
slug = models.SlugField(max_length=50, unique=True)
name = models.CharField(max_length=100)
op = models.CharField(max_length=20,default='in')
class Meta:
ordering = ('slug', )
def __str__(self):
return self.name
def get_formfield_name(self):
return slugify('attribute-%s' % self.slug, allow_unicode=True)
def has_values(self):
return self.values.exists()
class AttributeChoiceValue(models.Model):
name = models.CharField(max_length=100)
slug = models.SlugField(max_length=100)
attribute = models.ForeignKey(
ProductAttribute, related_name='values', on_delete=models.CASCADE)
class Meta:
unique_together = ('name', 'attribute')
def __str__(self):
return self.name
class Product(models.Model):
name = models.CharField(max_length=128)
attributes = HStoreField(default={})
q2 = AttributeChoiceValue.objects.filter(attribute__name='size')
我的大小过滤器(filter.py)是:
我目前正在使用以下查询在views.py中筛选我的数据库
result = Product.objects.all()
for key, value in request.GET:result = result.filter(**{'attributes__{}__in'.format(key): value})
我想去
a=request.GET
for key, value in a:
result = result.filter(**{'attributes__{}__{}'.format(key,a['op']): value})
因此,如果我甚至使用价格范围作为过滤器,我的查询过滤器将相应地
attributes__price__range
您可以通过“路径转换器”向视图发送信息: 或使用正则表达式:
什么是
“op”:“in”
它来自哪里?你能说得更具体些吗?
attributes__price__range