来自不同类django的访问和聚合选择

时间:2015-09-09 09:34:24

标签: python django

这就是我所拥有的:

class Service(models.Model):
SERVICE_UNITY_TYPE = (
    ('H', 'Hours'),
    ('DAY', 'Days'),
    ('MON', 'Months'),
    ('WEE', 'Weeks')
)

class Product(models.Model):
PRODUCT_UNITY_TYPE = (
    ('CM', 'Centimeter'),
    ('M', 'Meter'),
    ('KM', 'Kilometers'),
    ('M2', 'Square Meter'),
    ('M3', 'Cubic Meters'),
    ('KG', 'Kilogram'),
    ('BOX', 'Boxes'),
    ('LT', 'Liters'),
    ('QTY', 'Qty'),
)

我想要的是将这些类中的两个选项聚合到另一个类:

类InvoiceItem(models.Model):

ITEM_TYPE = (
    Product.PRODUCT_UNITY_TYPE,
    Service.SERVICE_UNITY_TYPE,
)

type = models.CharField(max_length=2, choices=ITEM_TYPE)

或者更好,如果可能的话:

type = models.CharField(max_length=2, choices=(Product.PRODUCT_UNITY_TYPE, Service.SERVICE_UNITY_TYPE))

1 个答案:

答案 0 :(得分:2)

这应该有效:

combined_type = models.CharField(
    max_length=2,
    choices=Product.PRODUCT_UNITY_TYPE + Service.SERVICE_UNITY_TYPE,
)

(但“MON”不适合您的“max_length = 2”字段,因此您可能也想要更改它)