【发布时间】: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