首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wagtail -传递设置为inline的查询

Wagtail -传递设置为inline的查询
EN

Stack Overflow用户
提问于 2018-11-21 17:01:03
回答 1查看 299关注 0票数 1

我正面临着几天来的一个问题,但是,无论我如何不断地搜索,我都无法在这里或网络上的任何地方找到任何解决方案。是这样的:我正在为一些提供教学课程的机构开发一个网站。我使用的是WAGTAIL,类的结构是这样的:

代码语言:javascript
复制
class Course(Page):
...
    content_panels = Page.content_panels

class Exam(Page):
    #fields

    content_panels = Page.content_panels + [
        #fields
        InlinePanel('preparatory_exam', heading='Preparatory Exams'),
    ]

class PreparatoryExam(Orderable):
    page = ParentalKey('Exam',
        on_delete=models.CASCADE,
        related_name = 'preparatory_exams',
        )
    name = models.ForeignKey(
        Exam,
        on_delete=models.CASCADE,
        blank=True,
        null=True,
        related_name = 'preparatory_exam',
    )

我还这样组织了管理部分的页面:

代码语言:javascript
复制
\COURSE_1_PAGE
\-----------\EXAM_1
\-----------\EXAM_2
\------------------\Prep exam 1
\------------------\Prep exam 2
\-----------\EXAM_3
...
\COURSE_2_PAGE
\-----------\EXAM_1
\-----------\EXAM_2
\-----------\EXAM_3
....

因此,问题是:在为某个考试选择预备考试时,有没有办法将自定义查询集传递到内联下拉框?我想要的是将集合限制为同一课程中出现的考试。我可以通过在foreignkey字段中添加一个limit_choices_to来做到这一点,但是AFAIK,它将是一个“静态”过滤器,因为它将与模型相关,而不是与其实例相关,所以它对于每个新实例化的检查都是相同的……

第一个非常不令人满意的解决方案是用2-3个FieldPanels更改InlinePanel (通常一个考试不需要超过2-3个其他准备考试)……

另一个丑陋的解决方案是显式地定义Course_1、Course_2等类,但这里的问题是,我每年都必须添加另一个类,因为他们每年都会设置一门新课程!所以我没有太多的选择:以某种方式重写(但我一无所知) InlinePanel对象行为,或者改变我设计站点的方式。有谁可以帮我?非常非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-11-23 00:15:23

一种实用的选择可能是使用“普通Django视图”来构建应用程序的这一特定部分,自由地借用Wagtail可视化设计,这样对于最终用户来说,一切看起来都是一样的。假设您正在构建一个非常严格的数据结构- course, exam等的显示,而不是“自由形式的内容”,这可能是我选择的方式。

(请注意,当Wagtail不是驱动页面显示的那个标记时,Wagtail模板标记可能会也可能不会正常工作。我建议实现您自己的代码,当然可以从Wagtail源代码中自由复制以获得灵感。)最后,用户不会察觉到差异,您可以非常自由地开发URL,将用户发送到Wagtail管理的目标页面,例如课程描述和考试本身。

另一个实用的选择是使用Django模板标记来构造显示的部分,否则由Wagtail管理,尽管这可能会变得有点复杂。因为Django是整个事情的基础,所以"Django规则仍然适用“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53408434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档