我问了question earlier to programmatically identity foreignkey links.。编程识别Django的外键链接,但通过表省略
我发现下面的代码翻出所有的一个一对多链接:
yourModel._meta.get_all_related_objects()
现在我发现,虽然唯一的问题是,它也包括要多到interemdiary表 - 多个链接。所以如果我有以下型号,
class Model_one(models.Model):
name = models.CharField("Name", max_length=30)
people = models.ManyToManyField('Model_two', blank=True, through='Association')
而不是没有返回,代码返回关联。有没有办法指定“真正的”一对多链接或通过表格忽略?即使我必须从返回的yourModel._meta.get_all_related_objects()手动删除它?
问另一种方法:如何识别/隔离实际上是“通过”表的链接?
我发现MyModel._meta.get_all_related_objects()只检索一对多的关系。因此,虽然MyModel._meta.get_all_related_many_to_many_objects()返回不通过中间表的多对多链接,但将简单的多对多与一对多比较没有帮助。 MyModel._meta.get_all_related_objects()返回包括“through”表在内的所有一对多对象。我如何省略直通表? – 2012-02-17 02:00:24