情况很简单。
class EventType(models.Model):
name = models.CharField()
class Event(models.Model):
...
event_type = models.ForeignKey('EventType')
需要有机会在event_type
中输入自定义 CharField
。 EventType
类是分开的原因是该字段上将有大量的查找。而且,对于ForeignKey条目(不是自定义值),查找将仅。
总结一下:存储自定义event_type
是否有更好的解决方案,而不是声明一个aditional字段custom_event_type = models.CharField()
?
答案 0 :(得分:3)
您仍然可以使用相同型号保存所有事件类型,但使用其他字段来判断您是否要在搜索结果中包含EventType
:
class EventType(models.Model):
name = models.CharField()
include_in_search = models.BooleanField()
class Event(models.Model):
...
event_type = models.ForeignKey('EventType')
如果您创建的数据库索引按include_in_search
排序,然后按name
排序,我打赌您确实不会注意到查找时间的任何差异。
您没有编写所需的所有规范,但您可能希望将name
字段设置为唯一,或者甚至将其用作主键。