存储自定义值而不是foreignkey的最佳实践?

2024-06-13 09:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

情况很简单。你知道吗

class EventType(models.Model):
    name = models.CharField()

class Event(models.Model):
    ...
    event_type = models.ForeignKey('EventType')

需要提供机会在CharField中输入自定义event_typeEventType类之所以是独立的,是因为在该字段上会有一个查找的lor。并且只对ForeignKey条目(而不是自定义值)进行查找。你知道吗

总之:存储自定义event_type比声明一个传统字段custom_event_type = models.CharField()有更好的解决方案吗?你知道吗


Tags: nameevent声明modelmodelstype情况条目
1条回答
网友
1楼 · 发布于 2024-06-13 09:35:21

您仍然可以使用相同的模型保存所有事件类型,但使用一个附加字段来说明是否要在搜索结果中包含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字段设置为唯一的,甚至将其用作主键。你知道吗

相关问题 更多 >