有什么办法可以将 django 中的外键设置为另一个模型的 字段 吗?
例如,假设我有一个 ValidationRule 对象。我希望规则定义要验证另一个模型中的哪些字段(以及一些其他信息,例如它是否可以为 null、数据类型、范围等)
有没有办法在 Django 中存储这个字段级映射?
原文由 Cory 发布,翻译遵循 CC BY-SA 4.0 许可协议
有什么办法可以将 django 中的外键设置为另一个模型的 字段 吗?
例如,假设我有一个 ValidationRule 对象。我希望规则定义要验证另一个模型中的哪些字段(以及一些其他信息,例如它是否可以为 null、数据类型、范围等)
有没有办法在 Django 中存储这个字段级映射?
原文由 Cory 发布,翻译遵循 CC BY-SA 4.0 许可协议
是和不是。 FK 关系是在类级别描述的,反映了数据库中的FK 关联,因此不能直接在FK 参数中添加额外的信息。
相反,我建议使用一个字符串来保存另一个表上的字段名称:
class ValidationRule(models.Model):
other = models.ForeignKey(OtherModel)
other_field = models.CharField(max_length=256)
这样,您可以通过以下方式获取该字段:
v = ValidationRule.objects.get(id=1)
field = getattr(v, v.other_field)
请注意,如果您使用多对多字段(而不是一对多字段),则内置支持创建自定义中间表以使用 through 选项保存元数据。
原文由 Jarret Hardie 发布,翻译遵循 CC BY-SA 2.5 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
我没试过这个,但似乎从 Django 1.0 开始你可以这样做:
这方面的文档在 这里。