以编程方式识别django foreignkey链接

时间:2012-02-05 17:33:13

标签: mysql django one-to-many

与我问here的问题类似,如果我想列出模型中的所有外键关系,有没有办法自动检测这些关系(向前和向后)?

具体而言,如果模型1读取

class Mdl_one(models.Model):
    name = models.CharField(max_length=30)

和模型2读取

class Mdl_two(models.Model):
    mdl_one = models.ForeignKey(Mdl_one)
    name = models.CharField(max_length=30)

是否有一些我可以从Mdl_one运行的元命令(如Model_one()。_ meta.one_to_many)告诉我mdl_two与它有一对多的外键关系?只需将mdl_one和mdl_two 连接起来,不一定任何两个对象

1 个答案:

答案 0 :(得分:1)

您正在寻找:

yourModel._meta.get_all_related_objects()

示例(已编辑):

class Alumne(models.Model):
    id_alumne = models.AutoField(primary_key=True)
    grup = models.ForeignKey(Grup, db_column='id_grup')
    nom_alumne = models.CharField("Nom",max_length=240)
    cognom1alumne = models.CharField("Cognom1",max_length=240)
    cognom2alumne = models.CharField("Cognom2",max_length=240, blank=True)
    ...

class Expulsio(models.Model):                             <---!
    alumne = models.ForeignKey(Alumne, db_column='id_alumne')
    dia_expulsio = models.DateField(blank=True)
    ...


>>> from alumnes.models import Alumne as A
>>> for x in A._meta.get_all_related_objects():
...     print x.name
... 
horaris:alumneexclosdelhorari
presencia:controlassitencia
incidencies:entrevista
incidencies:expulsio                                      <---!
incidencies:incidencia
incidencies:incidenciadaula
seguimentTutorial:seguimenttutorial