已生成 Django Slug URL 返回:'No Fund matches the given query.'

Django Slug Generated URL Returning: 'No Fund matches the given query.'

我正在尝试使用 slug 生成 urls,但是无论我在哪里访问 url,我都会得到 'Page not found at /funds/[slug_generated_value]'

Raised by:  apps.funds.views.details
No Fund matches the given query

这是我的 models.py,我使用 Fund.name 生成 fund_id 来创建首字母缩略词,并添加从截止日期减去小时、分钟、秒值的日期时间值:

class Fund(models.Model):
    name = models.CharField(max_length=128, unique=True)
    description = models.TextField()
    duration = models.CharField(max_length=10)
    slug = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super(Fund, self).save(*args, **kwargs)

    def __str__(self):
        return self.name

class OfferedFunds(models.Model):
    fund_id = models.CharField(max_length=55, blank=True)
    fund_name = models.ForeignKey(Fund)
    deadline = models.DateTimeField('Deadline')
    slug = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        output = ''
        for i in self.fund_name.name.upper().split():
            output += i[0]
        deadline = str(self.deadline)[:-15] 
        deadline = deadline.replace('-', '')
        random_number = random.randint(1,9)
        self.fund_id = '%s%s%s' % (output, deadline, random_number)
        self.slug = slugify(self.fund_id)
        super(OfferedFunds, self).save(*args, **kwargs)

    class Meta:
        verbose_name_plural = "Offered funds"

    def __str__(self):
        return '%s' % (self.fund_id)

和我对应的views.py:

def details(request, slug):
    context_dict = {}

    fund = get_object_or_404(Fund, slug=slug)
    context_dict['fund'] = fund

    offered_funds = OfferedFunds.objects.filter(fund_name=fund, deadline__gte=timezone.now()).order_by('deadline')
    context_dict['offered_funds'] = offered_funds

    return render(request, 'funds/details.html', context_dict)

def of_details(request, slug):
    context_dict = {}

    of = get_object_or_404(OfferedFunds, slug=slug)
    context_dict['of'] = of

    return render(request, 'funds/offered-funds-details.html', context_dict)

最后是我的 urls.py:

url(r'^(?P<slug>[\w-]+)/$', views.details, name='details'),
url(r'^(?P<slug>[\w-]+)/$', views.of_details, name='of details'),

我的 details() 视图工作正常,但它的 of_details() 不起作用。如果我取出 details() 视图,of_details() 会起作用。任何人都知道我该如何解决这个错误?谢谢

好的,正如用户 lambo477 在评论中指出的那样,我的网址太相似了,所以我更改了:

url(r'^(?P<slug>[\w-]+)/$', views.of_details, name='of details'),

至:

url(r'^det/(?P<slug>[\w-]+)/$', views.of_details, name='of details'),

这奏效了。