Django多表继承中的自定义访问者名称

时间:2013-12-23 15:31:41

标签: django inheritance django-models

在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)

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

1 个答案:

答案 0 :(得分:2)

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