尝试替换默认HTML小部件

时间:2018-03-08 14:49:25

标签: django django-widget

我正在制作一个框架来改进现有系统的开发。我的主要任务是让所述系统响应,我们决定使用材料设计。我们正在使用 django 1.9版

我们已经尝试了很多现有的框架(django材料,grappelli等),但是我们决定开发自己的框架,因为如果我们要使用现有的框架,我们必须破解sh * t它,基本上。

问题是,现在我需要能够呈现HTML小部件,以便实现(我们正在使用的库)很好地显示它们。我知道,就我所阅读的内容而言(几乎在任何地方),默认情况下这是不可能的。所以我想出了两种方法(我实现了第二种方法的快速和脏的版本,它有效),但我发现它们都非常......不优雅。

第一个是创建我们自己的数据库字段,继承自django中定义的数据库字段,覆盖formfield方法以使用自定义表单字段(我们将通过继承django的字段并使它们使用我们的自定义窗口小部件来创建)。我(显然)没有实现这个,因为它似乎涉及太多的覆盖我的口味。

我提出的第二个选项是创建一个自定义模板标记(称为render_form),它接受一个表单,遍历其字段,并使用自定义模板以物化友好的方式呈现它们。我确实实现了这个选项的一个相当基本的版本(虽然我手边没有代码),并且它有效;但它不够优雅(也没有效率)。

两者中哪一个更好实施? (如果你也可以告诉我为什么你认为那个选项是正确的,那就太棒了)。另外,还有其他方法可以解决这个问题吗?

0 个答案:

没有答案