我的电脑有问题。尝试访问页面时出现以下错误: NoReverseMatch at/admin/r/17/1/
反转参数为“()”且关键字参数为“{slug”的“reward”:找不到u'yummy-cake'}。已尝试1个图案:['奖品/(?P) /$']
如果我手动键入url,我会得到找不到的页面。你知道吗
我的urlconf:
....
url(r'^prizes/$', PrizeList.as_view(), name="prize_list"),
url(r'^prizes/(?P<slug>\w+)/$', GetPrize.as_view(), name="prize"),
....
我的型号:
class Prize(models.Model):
prize_name = models.CharField(max_length=30, blank=False, null=False, verbose_name="the prize's name")
prize_slug = models.SlugField(max_length=30, blank=False, null=False, verbose_name="the prize slug")
prize_excerpt = models.CharField(max_length=100, blank=False, null=False, verbose_name="prize excerpt")
company = models.ForeignKey('Company')
prize_type = models.ManyToManyField('Prize_Type')
def get_absolute_url(self):
return reverse('omni:reward', kwargs={'slug':self.prize_slug})
def __str__(self):
return self.prize_name
最后,模板的一些相关部分:
class GetPrize(SingleObjectMixin, FormView):
template_name = 'omninectar/prize.html'
slug_field = 'prize_slug'
form_class = Redeem_Form
model = Prize
有什么想法吗?你知道吗
两件事:
Reverse for 'reward' with arguments '()' and keyword arguments '{'slug': u'yummy-cake'}' not found
→在get_absolute_url
方法中,告诉Django查找名为reward
的url模式,它不在urlconf中。把它改成prize
,它就可以工作了。“如果我手动键入url,我将找不到页面”→您的模式是
\w+
,在documentation中描述为所以它只匹配字母、数字和下划线。与“美味蛋糕”中的“-”不符。您可以在python shell中尝试:
相关问题 更多 >
编程相关推荐