在中为Django admin中的模型设置默认下拉选择

2024-09-30 18:35:05 发布

您现在位置:Python中文网/ 问答频道 /正文

抱歉,如果标题很难理解,我想不出一个简洁的方式来表达这个。 {{cd2>和{cd3}有五个

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)

桌面和硬盘也扩展了ComputingObject。在

因此在管理界面中,当创建三个ComputingObject子对象的新实例时,sanitize_方法显示为一个下拉(select)字段。在我的项目中,数据库中有一小部分SanitizationMethod。我想要的是让这个下拉菜单为三个ComputingObject子菜单中的每一个指定(不同)选项。例如,Desktop可能默认为“删除硬盘驱动器”,HardDrive将是“消磁和销毁”,等等。有没有办法用django做到这一点?在

从表面上看,似乎很容易为三个子字段中的每一个子字段重写sanitize_method,并将defualt= x放在每个子字段中,但是django不允许重写父字段,因此这种方法行不通。在

我被难住了。有人知道怎么做吗?在


Tags: django方法标题fieldsmodelmodels方式method