Что было бы лучшим решением для добавления / редактирования нескольких подтипов.
Например, класс супертипа Контакт с классом подтипа Клиент и класс подтипа Поставщик. Способ, показанный здесь, работает, но когда вы редактируете Контакт, вы получаете обе строки, то есть подтип Клиент и подтип Поставщик.
Таким образом, даже если вы хотите добавить только Клиента, вы также получите поля для поставщика и наоборот. Если вы добавите третий подтип, вы получите три группы полей подтипа, в то время как вы фактически хотите только одну группу подтипа, в упомянутом примере: Клиент.
например:.
class Contact(models.Model):
contact_name = models.CharField(max_length=128)
class Client(models.Model):
contact = models.OneToOneField(Contact, primary_key=True)
user_name = models.CharField(max_length=128)
class Supplier(models.Model):
contact.OneToOneField(Contact, primary_key=True)
company_name = models.CharField(max_length=128)
и в admin.py
class ClientInline(admin.StackedInline):
model = Client
class SupplierInline(admin.StackedInline):
model = Supplier
class ContactAdmin(admin.ModelAdmin):
inlines = (ClientInline, SupplierInline,)
class ClientAdmin(admin.ModelAdmin):
...
class SupplierAdmin(admin.ModelAdmin):
...
Теперь, когда я хочу добавить Клиента, то есть только Клиента, я редактирую Контакт и получаю строки для Клиента и Поставщика. И, конечно, то же самое для Поставщика.
Есть ли способ избежать этого? Когда я хочу добавить / отредактировать клиента, который я вижу только «Встроенный для клиента», и когда я хочу добавить / изменить поставщика, который я вижу только «Встроенный для поставщика», при добавлении / редактировании контакта?
Или, возможно, есть другой подход. Буду очень признателен за любую помощь или предложение.