在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)
但目前尚不清楚这样的字段是否多余。