Cor*_*ory 21 python django django-models
有没有办法将django中的外键设置为另一个模型的字段?
例如,假设我有一个ValidationRule对象.我希望规则定义另一个模型中要验证的字段(以及其他一些信息,例如它是否可以为null,数据类型,范围等)
有没有办法在django中存储这个字段级映射?
Mon*_*lik 76
我没有试过这个,但似乎自Django 1.0以来你可以这样做:
class Foo(models.Model):
foo = models.ForeignKey(Bar, to_field='bar')
Run Code Online (Sandbox Code Playgroud)
这方面的文档就在这里.
Jar*_*die 18
是的,不是.FK关系在类级别描述,并镜像数据库中的FK关联,因此您无法直接在FK参数中添加额外信息.
相反,我建议在另一个表上使用一个包含字段名称的字符串:
class ValidationRule(models.Model):
other = models.ForeignKey(OtherModel)
other_field = models.CharField(max_length=256)
Run Code Online (Sandbox Code Playgroud)
这样,您就可以获得以下字段:
v = ValidationRule.objects.get(id=1)
field = getattr(v, v.other_field)
Run Code Online (Sandbox Code Playgroud)
请注意,如果您使用的是"多对多"字段(而不是"一对多"),则可以使用内置支持创建自定义中间表,以使用through选项保存元数据.
| 归档时间: |
|
| 查看次数: |
36219 次 |
| 最近记录: |