- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法理解为什么我的 {{ post.categories }}
在模板中展示了 blog.PostPageBlogCategory.None
当管理面板显示为 post
选择的类别时目的。
这是我的 model.py 设置:
from django.db import models
# Create your models here.
from django.db import models
from modelcluster.fields import ParentalKey
from modelcluster.tags import ClusterTaggableManager
from taggit.models import Tag as TaggitTag
from taggit.models import TaggedItemBase
from wagtail.admin.edit_handlers import (
FieldPanel,
FieldRowPanel,
InlinePanel,
MultiFieldPanel,
PageChooserPanel,
StreamFieldPanel,
)
from wagtail.core.models import Page
from wagtail.images.edit_handlers import ImageChooserPanel
from wagtail.snippets.edit_handlers import SnippetChooserPanel
from wagtail.snippets.models import register_snippet
class BlogPage(Page):
description = models.CharField(max_length=255, blank=True,)
content_panels = Page.content_panels + \
[FieldPanel("description", classname="full")]
class PostPage(Page):
header_image = models.ForeignKey(
"wagtailimages.Image",
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name="+",
)
tags = ClusterTaggableManager(through="blog.PostPageTag", blank=True)
content_panels = Page.content_panels + [
ImageChooserPanel("header_image"),
InlinePanel("categories", label="category"),
FieldPanel("tags"),
]
class PostPageBlogCategory(models.Model):
page = ParentalKey(
"blog.PostPage", on_delete=models.CASCADE, related_name="categories"
)
blog_category = models.ForeignKey(
"blog.BlogCategory", on_delete=models.CASCADE, related_name="post_pages"
)
panels = [
SnippetChooserPanel("blog_category"),
]
class Meta:
unique_together = ("page", "blog_category")
@register_snippet
class BlogCategory(models.Model):
CATEGORY_CHOICES = (
('fighter', 'Fighter'),
('model', 'Model'),
('event', 'Event'),
('organization', 'Organization'),
('other', 'Other')
)
name = models.CharField(max_length=255)
slug = models.SlugField(unique=True, max_length=80)
category_type = models.CharField(
max_length=100, choices=CATEGORY_CHOICES, blank=True)
description = models.CharField(max_length=500, blank=True)
panels = [
FieldPanel("name"),
FieldPanel("slug"),
FieldPanel("category_type"),
FieldPanel("description"),
]
def __str__(self):
return self.name
class Meta:
verbose_name = "Category"
verbose_name_plural = "Categories"
class PostPageTag(TaggedItemBase):
content_object = ParentalKey("PostPage", related_name="post_tags")
@register_snippet
class Tag(TaggitTag):
class Meta:
proxy = True
关于我的 blog_page.html 模板的一些上下文。此模板是在博客中创建的所有帖子的列表,而不是单个帖子本身。
{% extends "base.html" %}
{% load wagtailcore_tags wagtailimages_tags %}
{% block content %}
<section class="text-gray-600 body-font">
<div class="container px-5 py-24 mx-auto">
<div class="flex flex-wrap -m-4">
{% for post in page.get_children.specific %}
<div class="p-4 md:w-1/3">
<div
class="
h-full
border-2 border-gray-200 border-opacity-60
rounded-lg
overflow-hidden
"
>
{% if post.header_image %} {% image post.header_image original as header_image %}
<a href="{% pageurl post %}">
<img
src="{{ header_image.url }}"
class="lg:h-48 md:h-36 w-full object-cover object-center"
/>
</a>
{% endif %}
<div class="p-6">
<h2
class="
tracking-widest
text-xs
title-font
font-medium
text-gray-400
mb-1
"
>
{{ post.categories}}
</h2>
## The rest omitted for brevity
现在,我可以从
post
中提取数据对象,例如日期、标题、图像,但由于我在 models.py 中设置类别的方式的某种原因,我无法为每个帖子显示正确的类别。
blog.PostPageBlogCategory.None
正在为
{{post.categories}}
展示自己.理想情况下,显示的正确 Category 应该是一个字符串对象,而不是 None。
最佳答案
这是 Django 的怪癖... post.categories
不给你类别列表本身,而是一个 manager object提供对该关系的各种操作。 (我不确定为什么该管理器对象的字符串表示形式为 "blog.PostPageBlogCategory.None"
,不过......)post.categories.all
将为您提供 PostPageBlogCategory
的实际查询集对象,但由于您尚未提供 __str__
该类上的方法,直接输出可能也不会显示任何有意义的内容。循环它应该给你你正在寻找的东西:
{% for post_category in post.categories.all %}
{{ post_category.blog_category }}
{% endfor %}
关于python - django/wagtail - 当管理面板另有说明时,对象属性显示无?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68307310/
我有一个 wagtail 非页面模型,我想使用 InlinePanel以便我可以在父表单中内联编辑多个项目。 class Parent(ClusterableModel): panels = [
我有一个使用多站点模式的 wagtail 安装,每个站点有一组用户,每个组都是自己的集合。 当用户登录管理界面时,他们会在摘要部分看到所有集合中的图像计数。 但是当他们点击图像菜单时,他们只能看到他们
我正在关注 the documentation还有this example在我的 Wagtail 站点中创建自定义 OEmbed Finder。 (最终我想修改 YouTube 视频的 HTML 输出
Wagtail 是美妙的 CMS。我确实有一个问题如何在管理员中添加子菜单。我有一个自定义模型位置在那个模型中我有 2 个外键。要管理通过 modeladmin 创建的位置模型,请使用菜单。但是,要管
我很难实现“嵌套类别”之类的东西: PageA: - Cat1 - SubCat1 - SubCat2 - ... - Cat2 - SubCat1 - .
对于博客应用程序或 CMS,这似乎是一个非常简单的要求: 如何自动使登录用户成为 wagtail 页面的作者?例如,如果我以“Bob”身份登录并输入帖子,则作者应自动为“Bob” ". 通常我会简单地
我想从仪表板禁用 wagtail 更新警报。我担心它会惊动我的客户。我很感激你的提醒,但没有办法忽略它。我猜此时唯一的行动方案是进入 wagtail 管理模板并简单地注释掉适用的代码? 最佳答案 有
我在预览 Wagtail 页面时遇到错误,但在发布和实时查看时一切正常。我的设置是这样的: from django.db import models from modelcluster.fields
对于博客应用程序或 CMS,这似乎是一个非常简单的要求: 如何自动使登录用户成为 wagtail 页面的作者?例如,如果我以“Bob”身份登录并输入帖子,则作者应自动为“Bob” ". 通常我会简单地
我想从仪表板禁用 wagtail 更新警报。我担心它会惊动我的客户。我很感激你的提醒,但没有办法忽略它。我猜此时唯一的行动方案是进入 wagtail 管理模板并简单地注释掉适用的代码? 最佳答案 有
我在预览 Wagtail 页面时遇到错误,但在发布和实时查看时一切正常。我的设置是这样的: from django.db import models from modelcluster.fields
url(r'^$', views.HomePage.as_view(), name='homepage'), class HomePage(RedirectView): def get(sel
我正在使用鹡鸰作为 headless CMS。我想让此 CMS 的用户能够轻松查看 SPA 上的页面预览。我已覆盖 API 以在 token 的帮助下公开草稿页面。 我唯一坚持的部分是修改 Previ
有没有办法在 Wagtail 中为 FieldPanel 设置自定义标签?我想做类似的事情: class BlogPage(Page): intro = models.CharField(ma
我试图让两个不同的 Wagtail 站点拥有自己的 404 页面,但似乎没有办法在 wagtail“设置”=>“的“站点”配置中指定哪个页面用作 404 页面站点”部分,当我将它们放入所涉及的应用程序
我正在创建一个 wagtail 站点,用户可以在其中注册、登录到 wagtail 管理员并编写要发布的文章页面。是否有一个钩子(Hook)或可能的方法来拦截和过滤 wagtail 管理中的数据,以便用
我在 Wagtail 2.0 富文本字段中有一堆内容,看起来像 Page heading (intro blurb) heading 1 (heading-1-relevant text) headi
我有一个 Wagtail Page 类的子类,它具有 django ManyToManyField 类型的字段。当我尝试创建页面对象的新实例时,我会获得 ManyToManyField 指向的对象列表
我有一个 Wagtail Page 类的子类,它具有 django ManyToManyField 类型的字段。当我尝试创建页面对象的新实例时,我会获得 ManyToManyField 指向的对象列表
假设我有这样一个模型: class Sandwich(models.Model): """ Food-like things stacked horizontally. """
我是一名优秀的程序员,十分优秀!