Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Slug生成的URL返回:';没有与给定查询匹配的基金;_Python_Django_Django Models_Django Views_Django Urls - Fatal编程技术网

Python Django Slug生成的URL返回:';没有与给定查询匹配的基金;

Python Django Slug生成的URL返回:';没有与给定查询匹配的基金;,python,django,django-models,django-views,django-urls,Python,Django,Django Models,Django Views,Django Urls,我试图使用slug生成url,但是无论我在哪里访问url,我都会得到“Page not found at/funds/[slug\u generated\u value]” Raised by: apps.funds.views.details No Fund matches the given query 这是my models.py,我使用fund.name生成fund_id以创建首字母缩略词,并添加DateDate的datetime值减去小时、分钟、秒值: class Fund(mod

我试图使用slug生成url,但是无论我在哪里访问url,我都会得到“Page not found at/funds/[slug\u generated\u value]”

Raised by:  apps.funds.views.details
No Fund matches the given query
这是my models.py,我使用fund.name生成fund_id以创建首字母缩略词,并添加DateDate的datetime值减去小时、分钟、秒值:

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)
最后是my URL.py:

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

My details()视图工作正常,但_details()视图不起作用。如果我取出details()视图,则_details()的作用是有效的。有人知道我如何解决这个错误吗?谢谢

好的,正如用户评论中指出的那样,我的URL太相似了,所以我改变了:

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

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

这是有效的。

Django如何区分相同的URL?您的两个正则表达式是相同的,因此当Django搜索适用的URL匹配项时,它将始终实现
视图。详细信息
函数就是这样。更改为
1r'^det/(?P[\w-]+)/$”
,效果非常好
url(r'^det/(?P<slug>[\w-]+)/$', views.of_details, name='of details'),