我有一些模型,每个模型有10多个字段。在我的第一个开发草案中,我不太关心事情的外观,并试图尽快获得代码的关键组件。我喜欢myForm.as内置在Forms对象中的www.example.com _p方法。主要的好处是,我可以根据需要更改模型,进行迁移,并且as_p将显示这些新字段,而不需要我更改模板。
我的问题是:是否有一种等效方法可以只显示用例?
我试着梳理文档,但没有发现表单之外的东西。理想的情况是类似于基于类的DetailView的东西,在模板中可以使用{{object.as_p }}。有人知道表单之外的动态显示功能吗?
正如在评论中提到的,我正在寻找一个为模型示例呈现html的模板标记。
1条答案
按热度按时间q3qa4bjr1#
TLDR:我在model类中为要显示的模型创建了一个“as_div”方法,并使用一组两列标记循环遍历所有字段。
然后我在HTML模板中使用了这个方法名(as_div),如下所示:myModel.html
我在研究django.forms API中使用的“as_div”辅助标记时遇到了this。
as_div()使用的模板。默认值:“Django/表单/div. html”
这让我想到,我能不能在django/models/文件夹中创建一个模板,然后像表单那样引用它?这就更简单了。当你想在行级别上操作模型时(instances)你只需要给model Class添加一个方法。所以我写了上面的方法,网页上显示了一堆标签。哎呀。原来你必须使用django.utils.safestring库将它标记为安全的,然后它将呈现为实际的HTML。
现在的缺点是每个模型必须有完全相同的方法添加到它的类。我不喜欢重复代码,但这将不得不这样做,直到我找到一个更干净的方式。