在 ForeignKey Django 模型上继承或设置选择

Posted

技术标签:

【中文标题】在 ForeignKey Django 模型上继承或设置选择【英文标题】:Inherit or set choises on ForeignKey Django model 【发布时间】:2013-02-19 19:23:30 【问题描述】:

让我们来看看这些模型:

from .choices import STATUS_CHOISES   

class Status(models.Model):
    current_status = models.CharField("Current status", max_length=50, choices=STATUS_CHOICES, default='new')
    status_change_date = models.DateField(verbose_name="Status change date", default=datetime.datetime.now())

class ProductRequest(models.Model):
    destination = models.CharField("Product Destination", max_length=255)
    status = models.ForeignKey(Status)

选择:

STATUS_CHOICES = (
('new', 'New'),
('ongoing', 'Ongoing'),
('finalized', 'Finalized'),
)

我需要在 ForeignKey 上设置相同的默认值并使用原始模型中的相同选项。我该怎么做?

【问题讨论】:

看看这篇文章:mechanicalgirl.com/post/dynamic-choices-on-a-foreignkey-field。希望能给你一些想法。 我认为这是不可能的,因为外键是基于 PK 而不是选择 【参考方案1】:

决定使用简单属性:

class ProductRequest(models.Model):
    destination = models.CharField("Product Destination", max_length=255)
    status = models.CharField("Request Status", max_length=50, choices=STATUS_CHOICES, default='new')

寻找存储状态更改日期的方法..

【讨论】:

以上是关于在 ForeignKey Django 模型上继承或设置选择的主要内容,如果未能解决你的问题,请参考以下文章

允许 Django 模型 ForeignKey 字段的表单上的 TextInput

Django Admin Cookbook-36如何更改下拉菜单中的ForeignKey显示文本

Django 模型继承和外键

ForeignKey null=True 时 Django 慢查询

在Django的foreignkey->'self'关系中继承特定的父模型属性

django ForeignKey 到任何类型的模型