Django:是否可以为模型的所有关系字段定义类related_name?

时间:2014-06-05 14:01:06

标签: python django django-models

Django是否提供了为模型的所有关系字段定义通用related_name的方法?

示例:

class A(models.Model):
  pass

class B(models.Model):
  pass

class C(models.Model):
  pass

class D(models.Model):
  a = models.ForeignKey(A, related_name="ds")
  b = models.ForeignKey(B, related_name="ds")
  c = models.ForeignKey(C, related_name="ds")

有没有办法只指定一次用于模型D的字段a,b,c的相关名称,或者除了为每个字段输入外,我别无选择吗?

2 个答案:

答案 0 :(得分:0)

理论上你可以做类似

的事情
class D(models.Model):
  name = "ds"
  a = models.ForeignKey(A, related_name=name)
  b = models.ForeignKey(B, related_name=name)
  c = models.ForeignKey(C, related_name=name)

但我不完全确定我理解你为什么要避免输入related_name =“ds”几次。干杯!

答案 1 :(得分:0)

对于那些感兴趣的人来说,这个功能在Django中不存在,最高可达1.7,但现在可以在开发版中使用。见https://docs.djangoproject.com/en/dev/ref/models/options/#default-related-name