所以我正在做一个小型 django 项目,在尝试将某些模型内联在管理站点中时遇到了一些问题。例如:
模型.py
class Client(models.Model):
client_name = models.CharField(max_length=100,unique=True,blank=False)
phone_number = models.ForeignKey(Phone)
class Phone(models.Model):
info = models.Charfield("eg. Personal", max_length=20)
number = models.CharField(max_length=20, blank=False)
现在,如果我想让我的客户管理员使用内联的 phone_number 堆叠,我不能这样做,...相反,我需要这样的模型:
class Client(models.Model):
client_name = ...
class PhoneAbstract(models.Model):
info = ...
number = ...
class Meta:
abstract = True
class ClientPhone(PhoneAbstract):
client = models.ForeignKey(Client)
...并且基本上每次我想将电话与模型相关联时定义一个从 PhoneAbstract 继承的新类:(。这很糟糕,但这是我可以这样做并获得正确管理界面的唯一方法:
管理员.py
class PhoneInline(admin.TabularInline):
model = ClientPhone
class ClientAdmin(admin.ModelAdmin):
inlines = (PhoneInline, )
现在,这太丑陋了(在我还没有受过教育的眼里),它让关系变得尴尬......那么,在第一种情况下,有没有办法在我的 ClientAdmin 中拥有外键?也许这就是 ModelAdmin.list_select_related 的用途,但我不确定...... :(