0

我正在尝试以表单的方式在 django 模板中呈现对象实例。所以在视图的某个地方创建了一个对象实例:my_object = MyObject()并在上下文中传递给模板:context['my_object'] = my_object

处理模板时,会调用 的__str__()方法MyObject来创建要填充的字符串。因为MyObject它看起来像这样:

def __str__(self):
    """ Render template """
    return mark_safe(
        render_to_string(self.template, {'options': self.options})
    )

由于对象的模板想使用 sekizai 向 CSS 和 JS 块添加代码,我需要渲染上下文。有没有办法(例如,使用不同的方法)来获取这个上下文?

4

1 回答 1

2

恐怕这是不可能的,这不是 Django 的方式

我要做的是:

  1. 声明一个模板(命名为mymodel_repr.html)。
  2. 写在里面,正是我想要呈现的方式。
  3. 将其存储在其他模板中(也可能在应用程序的templates/文件夹中)。
  4. 更改__str__(self)返回required字段或其他内容。
  5. 现在,每次我想打印这个模型的对象(以模板方式和所有上下文)时,我只想include it这样:{% include 'mymodel_repr.html' with obj=obj_i_want_to_print %}.

使用这种方法,您可以将业务与演示分开。

希望这对你有帮助!

于 2017-03-11T20:06:50.490 回答