例如,如果我有一个课堂总结
类摘要的每个实例可以是一个主题:
subjects = (
('english', 'אנגלית'),
('bible', 'תנ"ך'),
('history', 'היסטוריה'),
('civics', 'אזרחות'),
('language', 'לשון'),
('literature', 'ספרות'),
)
class Summary(models.Model):
...
subject = models.CharField(max_length=20, choices=subjects)
...
现在我决定要为每个主题硬编码一些主题,所以如果Summary.subject = "literature"
我想添加一个字段
做出如下选择:
literature_subtopics = (
('poems', 'שירה'),
('short_stories', 'סיפורים קצרים'),
('plays', 'מחזות'),
('novels', 'נובלות'),
)
如果主题是英语,那么english_subtopics
将用于选项字段。在
我想硬编码所有这些部门,因为它们不会每几年更改一次以上,如果有的话,将它们存储在数据库中没有任何意义。在
我需要为每个主题设置所有这些分区,并让Django适当地为子主题设置choices字段。在
我可以重写init方法来实现这一点吗?我听说那是个坏主意,会弄坏东西。在
即使数据不经常更改,将数据放入数据库并将Python放入Python文件似乎是最自然的做法。你提出的解决方案看起来像是在和Django想做的事情做斗争。在
如何看待数据库解决方案?在
请注意,该代码意味着将始终有一个父主题传递给SubjectForm。(您需要一个“根”主题。)
您可以使用函数动态设置选项。在
See docs
相关问题 更多 >
编程相关推荐