【问题标题】:Pages matching query does not exist. With second slug页面匹配查询不存在。与第二个蛞蝓
【发布时间】:2022-01-22 06:27:06
【问题描述】:

Views.py

def PortfolioElementView(request, portfolio_text):
    q = PortfolioElement.objects.filter(slug = portfolio_text)
    if q.exists():
        q = q.first()
    else:
        return HttpResponse("Go home")
    name = Pages.objects.get(name = q)    
    portfolio = get_object_or_404(PortfolioElement, id=id)
    menu = Menu.objects.all()
    photos = PortfolioImages.objects.filter(portfolio=portfolio)

    context = {
        'element': q,
        'portfolio': portfolio,
        'photos': photos,
        'menu': menu,
    }

    return render(request, 'core/portfolio_element.html', context)

Models.py

class Pages(models.Model):
    name = models.CharField(max_length=100)
    slug = models.SlugField(max_length=255, unique=True, blank=True)
    content = RichTextField(blank=True, null=True)

class PortfolioElement(models.Model):
    type = models.CharField(max_length=15)
    name = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100, blank=True, unique=True)


def slug_generator(sender, instance, *args, **kwargs):
    if not instance.slug:
        instance.slug = unique_slug_generator(instance)

pre_save.connect(slug_generator, sender=Pages)
pre_save.connect(slug_generator, sender=PortfolioElement)

Urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('<slug:slug_text>/', PagesView),
    path('', MainPageView),
    path('portfolio/<slug:portfolio_text>/', PortfolioElementView),
]

为什么它不起作用? :/

错误 不存在于 /portfolio/projekt-strony-xyz/ 页面匹配查询不存在。

编辑

我添加了 Pages 模型。

看起来您的帖子主要是代码;请添加更多细节。 看起来您的帖子主要是代码;请添加更多细节。 看起来您的帖子主要是代码;请添加更多详细信息。

【问题讨论】:

  • 你能分享你的Pages 模型吗?看来这就是问题所在。
  • @WillemVanOnsem 我更新了 models.py

标签: python django url slug


【解决方案1】:

您正在传递查询集,您需要传递特定字段。

name = Pages.objects.get(name=q.name)

【讨论】:

    猜你喜欢
    • 2018-03-03
    • 2012-05-17
    • 2013-10-15
    • 1970-01-01
    • 2018-04-03
    • 2019-06-25
    • 2014-09-20
    • 2018-08-27
    • 2019-05-24
    相关资源
    最近更新 更多