如果定义自定义
related_name
然后它将使用这个,否则它将小写整个模型名称(在您的示例中
.fancyrestaurant
)看到其他街区
django.db.models.related code
:
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())
这就是
OneToOneField
calls it
:
class OneToOneField(ForeignKey):
... snip ...
def contribute_to_related_class(self, cls, related):
setattr(cls, related.get_accessor_name(),
SingleRelatedObjectDescriptor(related))
opts.object_名称(在django.db.models.related.get_访问器_名称中引用)
defaults to
cls.__name__
.
至于
旁注:我正在尝试扩展
这样的用户对象。那可能是
问题是什么?
不,不会的
User
模型只是一个普通的django模型。小心点
相关\名称
碰撞。