2012-06-28 107 views
0

我有一個模型,需要相當多的BooleanFields,它們可以被認爲是偏好在某種方式。我目前正在做的是將所有字段添加到模型本身並將標籤硬編碼到HTML。所以,我的模型看起來有點像這樣:Django首選項/布爾字段

class Project(models.Model): 
    ...some fields... 
    Check1=models.BooleanField() 
    ....many of these... 
    Check19=models.BooleanField() 

我覺得這是做的非常愚蠢的辦法,並正在尋找一個更Python的解決方案。也許ManyToMany領域?有任何想法嗎?

+0

我希望你不是*真的叫他們「檢查」... –

+0

不完全。但使用簡單的符號可以實現簡單的(並且容易出錯),我知道)迭代 – leonsas

回答

1

我寧願給布爾字段一些有意義的名字,並將verbose_name放到字段描述中,例如,

class Project(models.Model): 
    # ... 
    featured = models.BooleanField(_("Featured")) 
    published = models.BooleanField(_("Published")) 
    # ... 
0

zen of python看看:

特別:

  • 簡單比複雜好。
  • 複雜比複雜好。
  • Flat比嵌套更好。
1

如果它們都屬於同一類型,則將其設置爲M2M可能是有意義的,例如, phone1,phone2,phone3等將更合適,因爲phones指向Phone模型。

但是,由於這些是布爾值,所以我懷疑是這樣。在模型上有很多領域不是問題,如果他們都有意義的話。事實上,當它們彼此沒有關係時,它將是錯誤的