2011-10-21 119 views
0

正如我們所知,Django作者提供了一個coding style guide,用作編寫Django應用程序時的指導。但是,所提供的文件沒有提到任何關於表格的具體內容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): 
     # ... 

所以,我的風格是先從領域,那麼元類(定義之前明確的界限),然後保存方法,那麼任何清潔方法,然後任何自定義方法。這是否接近標準,推薦的做法,如果存在這樣的事情?

+1

我不認爲它很重要,但出於語義的原因,我定義了與Model類相同的結構,畢竟唯一的目的是使您的代碼易於自己和其他人閱讀。 –

+0

我總是把clean()放在特定的clean_fieldname()函數的上面,但這與模型的唯一區別。我不知道編碼風格。感謝您的領導! –

+0

@ArgsKwargs:那麼,在clean()之前或之後保存(),例如?我經常有300個具有複雜功能的「表格」,因此,即使我知道它不是世界末日,也會喜歡一些標準化的位置。 –

回答

0

很多django的模型風格指導方針源於python的pep8指導方針,所以如果你還沒有做到這一點,那麼看看那裏!對於表單沒有任何具體的指導方針,但如果可能的話,確實也可以將rules for models應用於表單(例如,內部元類的順序)。

但是,這裏最重要的一點可能是保持整個項目的一致性,例如。其他開發人員如果期望在特定的時間點不會錯過某個長方式類中的某個方法定義......但是我想每個人都會同意,表單類往往變得非常複雜,並且他們沒有任何官方的指令!

+0

是的,我同意。感謝您的回答,我認爲值得一提的是,只需找出我是否是唯一不瞭解標準化風格的人!幸運的是不:) –