我的标题可能不是很清楚。 我现在面临的问题是:如何让URL模式在Django中接受变量参数?
我的视图将任意关键字参数传递给另一个view
。 这个视图处理什么信息(关键字参数)
这是我正在实施的search
功能的示例。 每个用户将有一个Saved Searches
的列表。当他们在Search list
点击项中任一项,它们将被引导至处理它接收
在Searches model
的信息不同的看法,我已经定义了构造,每个这些搜索的URL图案的get_absolute_url方法(基于该领域的模型)。
my model:
class Searches(models.Model):
SELLER_CHOICES=(('OWNER','owner'),
('DEALER','dealer'),
('BOTH','both'),)
#search_id = models.IntegerField(primary_key=True)
user = models.ForeignKey(User)
make = models.CharField(max_length=100, blank=True)
model = models.CharField(max_length=100, blank=True)
keywords = models.CharField(max_length=100, blank=True)
max_price = models.IntegerField(blank=True, null=True)
min_price = models.IntegerField(blank=True, null=True)
max_year = models.IntegerField(blank=True, null=True)
min_year = models.IntegerField(blank=True, null=True)
pic_only = models.NullBooleanField()
search_title_only = models.NullBooleanField()
owner_dealer_all = models.CharField(max_length=10,choices=SELLER_CHOICES,verbose_name='owner/dealer')
class Meta:
#managed = False
db_table = 'Searches'
verbose_name_plural = "Searches"
def __unicode__(self):
return "%s %s %s-%s" %(self.make,self.model,self.max_year,self.min_year)
def get_absolute_url(self):
return reverse('postings.views.detail',args=[model_to_dict(self.object)])
view:
class SearchListView(ListView):
model=Searches
template:
{% extends "base.html" %}
{% block content %}
{% for obj in object_list %}
<p><a href="{{ obj.get_absolute_url }}">{{ obj }}</a></p>
{% endfor %}
{% endblock %}
可以从图像中看到,当我点击your searches
,我得到的错误;
Reverse for 'postings.views.detail' with arguments '({'owner_dealer_all': u'DEALER', 'pic_only': True, 'make': u'toyota', u'id': 3, 'min_year': 1990, 'min_price': 4000, 'user': 1, 'keywords': u'hybrid', 'search_title_only': True, 'model': u'prius', 'max_price': 20000, 'max_year': 2012},)' and keyword arguments '{}' not found. 0 pattern(s) tried: []
基本上,我不知道如何处理这个URL模式。
或 如果这是一个不好的设计,请请提出一个解决方案
请让我知道,如果有什么不清楚,以便我可以详细说明。谢谢 –