【问题标题】:Django - Choices vs Models (FKs)Django - 选择与模型(FK)
【发布时间】:2012-03-29 01:25:27
【问题描述】:

假设我想为用户提供可供选择的选项,并确保提交的值是可用的选项。

我一直在阅读文档,在我看来:如果您的值不会改变,则使用 choices -- 如果您的数据是动态的,则使用 models

我有点不确定,不应该选择models 而不是choices,因为它们在数据库中强制执行某种约束?

【问题讨论】:

  • 你不想要一个简单性别选择的模型

标签: python database django django-models


【解决方案1】:

当您肯定需要其中之一时,请使用models

  • 无需重新加载代码即可轻松编辑(添加、删除)选项;
  • 能够存储任何选择的附加信息;
  • 简单的多对多关系(并通过它过滤)
  • 能够在不同情况下使用动态选择子集。

否则使用choices

【讨论】:

    【解决方案2】:

    models 通过数据库强制执行约束。 choices 通过代码强制执行约束。您选择哪一个取决于您要选择谁。

    【讨论】:

    • 嗯,是的,我在我的问题中提到了这一点,但是——考虑到选项(db/strategic/performance/etc),数据库中的约束不应该更好吗?
    • 您为什么认为 FK 必须比一组固定值具有更高的性能?
    • 我的意思不是——性能是指您的场景允许可接受的性能下降。想一想我的问题,也许我应该问为什么没有在数据库中放置任何限制以供选择。
    猜你喜欢
    • 2016-08-10
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    相关资源
    最近更新 更多