【问题标题】:Django Form Coding Style GuideDjango 表单编码风格指南
【发布时间】:2011-10-21 10:18:23
【问题描述】:

我们知道,Django 作者提供了一个coding style guide,作为编写 Django 应用程序时的指导。但是,提供的文件没有具体提到表格。

是否已经有一个通用的模式用于此?最好遵循模型样式指南,并进行一些小的修改?下面是我目前定义表单的方式,通过随机选择的流行 Django 应用程序,我看不到与我的方法一致的很多一致性。使用 Django 多年的人现在可以提供推荐吗?

class ExampleForm(BetterModelForm):
    # start with field definitions, as with Django Model style guide
    name = forms.CharField(label="Your Name")
    town = forms.CharField(label="Ideal city?")

    class Meta:
        # all Meta class definitions, as with Django Model style guide
        model = models.Example
        fields = ['name', 'town', 'example_field']

    def save(self):
        # ...

    def clean_name(self):
        # ...

    def clean_town(self):
        # ...

    def clean(self):
        # ...

    def custom_function(self):
        # ...

所以,我的风格是从字段开始,然后是 Meta 类(定义前有一条清晰的线),然后是 save 方法,然后是任何 clean 方法,然后是任何自定义方法。如果存在这样的事情,这是否接近标准的推荐方式?

【问题讨论】:

  • 我认为这并不重要,但出于语义原因,我定义了与 Model 类相同的结构,毕竟唯一的目的是让您的代码对自己和其他人易于阅读。
  • 我总是将 clean() 放在特定的 clean_fieldname() 函数之上,但这是与模型的唯一区别。我不知道编码风格。感谢您的提醒!
  • @ArgsKwargs:那么,例如,save() 在 clean() 之前还是之后?我经常有 300 行 Forms 具有复杂的功能,因此希望对它们的位置进行一些标准化,即使我知道这不是世界末日。
  • @pastylegs:没问题,当你的目标是成为一名优秀的 Django 开发人员时,这是一个很好的指南
  • 如果我没记错 django 首先检查单个清理方法,然后进行全面清理,我相信还有第三步。所以我想实际上应该先进行单个清理 :-)

标签: django forms coding-style


【解决方案1】:

django 的许多模型样式指南都源自 python 的 pep8 指南,所以如果您还没有这样做,请看这里!表单没有任何具体的指导方针,但如果可能的话,最好将rules for models 应用于表单(例如内部元类的顺序)。

但这里最重要的一点可能是在整个项目中保持一定的一致性,例如。其他开发人员不会错过长表单类中的某个方法定义,如果他们在某个时刻期待它......但我想每个人都会同意表单类往往变得非常复杂,并且没有任何官方指导方针。 !

【讨论】:

  • 是的,我同意。感谢您的回答,我认为值得一问只是为了找出我是否是唯一一个不知道标准化样式的人!幸好不是:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
相关资源
最近更新 更多