0

我一直在阅读并遵循 Django 教程https://docs.djangoproject.com/en/1.3/intro/tutorial01/我在具有 512 MB RAM 的 Xubuntu 12.04 LTS 虚拟机上运行 Django 1.3.1 和 Python 2.7.3如果这很重要。

实际上我找到了确切的问题,但参考似乎已经过时了。有没有人有一个可行的参考链接?Django 中的“article_set”从何而来?

先感谢您。

4

1 回答 1

1

Django 进行 ForeignKey 查找以建立相关对象之间的关系。这些关系作为访问器动态添加,后缀为_set

def get_accessor_name(self):
    # This method encapsulates the logic that decides what name to give an
    # accessor descriptor that retrieves related many-to-one or
    # many-to-many objects. It uses the lower-cased object_name + "_set",
    # but this can be overridden with the "related_name" option.
    if self.field.rel.multiple:
        # If this is a symmetrical m2m relation on self, there is no reverse accessor.
        if getattr(self.field.rel, 'symmetrical', False) and self.model == self.parent_model:
            return None
        return self.field.rel.related_name or (self.opts.object_name.lower() + '_set')
    else:
        return self.field.rel.related_name or (self.opts.object_name.lower())

执行此操作的 Django 源代码 ( models/related.py)

于 2013-08-15T20:14:35.243 回答