【问题标题】:Url Not Found Django找不到网址 Django
【发布时间】:2014-01-16 06:04:53
【问题描述】:

所以我遇到了一些麻烦。当我尝试访问某个型号的 url 时收到 404:

url(r'^rewards/(?P<slug>[-\w]+)/$', RedeemReward.as_view(), name="reward"),
url(r'^rewards/(?P<slug>[-\w]+)/$', CompanyDetail.as_view(), name="company"),

因此,顶部 URL 将类似于奖励/亚马逊礼品卡,而底部 URL 将类似于奖励/亚马逊(显示亚马逊必须提供的所有礼品卡)。奖励网址按预期工作,但当我尝试访问底部网址时得到 404。观点:

class CompanyDetail(DetailView):
    model = Company
    context_object_name = 'company'
    slug_field = 'company_slug'
    template_name = 'asdx/companies.html'

    def get_rewards(self):
    rewards = Reward.objects.filter(company=self.object)
    return rewards

    def get_context_data(self, **kwargs):
    context = super(CompanyDetail, self).get_context_data(**kwargs)
    context['rewards'] = self.get_rewards()
    return context

这是怎么回事?

【问题讨论】:

    标签: python django templates views urlconf


    【解决方案1】:

    这两个视图的模式是相同的,所以永远不能调用 CompanyDetail 视图。相反,RedeemReward 的模式匹配所有 slug,并为与其模型类不匹配的 slug 引发 404。 (可能是Reward。)在 URL 中添加一些内容以区分公司 URL 和奖励 URL。

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 2019-11-15
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      相关资源
      最近更新 更多