Извините, если заголовок трудно понять, я не могу придумать краткое описание этого. В моем проекте Django у меня есть пять моделей, ComputingObject
, Laptop
, Desktop
, HardDrive
и SanitizationMethod
. Они связаны как таковые:Настройка выбора по умолчанию для модели в интерфейсе администратора Django
class ComputingObject(models.Model):
#various other fields...
sanitize_method = models.ForeignKey(SanitizationMethod)
class Laptop(ComputingObject):
#laptop-related fields
class SanitizationMethod(models.Model):
description = models.CharField(max_length=100)
Рабочий стол и HardDrive также расширяют ComputingObject.
Так что в интерфейсе администратора при создании нового экземпляра любого из трех детей ComputingObject
sanitize_method отображается как раскрывающееся (выберите) поле. В моем проекте есть небольшая горстка SanitizationMethod
s в базе данных. Я хочу, чтобы это выпадающее меню было по умолчанию для определенного (другого) выбора для каждого из трех детей ComputingObject
. Например, Desktop
может по умолчанию «Удалить жесткие диски», HardDrive
будет «Degauss and destroy» и т. Д. Есть ли способ сделать это с помощью django?
Поверхность кажется такой же простой, как переопределение поля sanitize_method
для каждого из трех детей, и в каждом случае помещает defualt= x
, но django запрещает переопределение родительских полей, поэтому этот подход не будет работать.
Я в тупике. Кто-нибудь знает, как это сделать (или если это возможно)?