【问题标题】:Custom accessor name in Django multi-table inheritanceDjango多表继承中的自定义访问器名称
【发布时间】:2013-12-23 15:31:40
【问题描述】:

在 Django multi-table inheritance 场景中:

from django.db import models

class Place(models.Model):
    pass

class Restaurant(Place):
    pass

可以通过具有小写类名的超类实例访问子类:

place = Place.objects.get(id=id)
restaurant = place.restaurant  # auto-generated from `Restaurant`

如何自定义访问器名称,例如:

restaurant = place.custom_accessor_name

?

鉴于访问器是隐式创建的OneToOneField,尚不清楚可以自定义related_name 的位置。似乎可以添加:

custom_accessor_name = models.OneToOneField(Restaurant)

但不清楚这样的字段是否是多余的。

【问题讨论】:

    标签: django inheritance django-models


    【解决方案1】:

    如果您想手动定义一个或一个字段,请使用parent_link=True。否则,将创建一个附加字段。

    【讨论】:

    • 好收获!我会尝试推送一个提到这一点的文档补丁,因为继承文档中没有明确的链接。
    • multiple inheritance docs 中提到过(请参阅指定父链接字段)。但是,如果您认为它可以改进,那就去做吧并创建一个补丁。
    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多