0

我有一个模型需要相当多的 BooleanFields,它们可以以某种方式被视为偏好。我目前正在做的是将所有字段添加到模型本身并将标签硬编码到 HTML。所以我的模型看起来有点像这样:

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

我觉得这是一种非常愚蠢的做法,我正在寻找一种更 Pythonic 的解决方案。也许ManyToMany字段?有任何想法吗?

4

3 回答 3

1

如果它们都是同一类型,则将其设为 M2M 可能更有意义,例如phone1phone2phone3等更适合phones指向Phone模型。

但是,由于这些是布尔值,我怀疑情况是否如此。模型上有很多字段不是问题,如果它们在那里都有意义的话。事实上,当它们彼此没有关系时,将它们抽象出来是错误的。

于 2012-06-28T15:08:24.910 回答
1

我宁愿给布尔字段一些有意义的名称,并将 verbose_name 放在字段描述中,例如

class Project(models.Model):
    # ...
    featured = models.BooleanField(_("Featured"))
    published = models.BooleanField(_("Published"))
    # ...
于 2012-06-28T15:19:39.287 回答
0

看看python的禅意

尤其:

  • 简单胜于复杂。
  • 复杂胜于复杂。
  • 平面优于嵌套。
于 2012-06-28T15:06:02.340 回答