首页 > 解决方案 > Django 1 个包含 2 个子模型的父表,而不是创建 2 个子表

问题描述

我有以下三个模型:

class Transaction(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="%(class)ss")
    timestamp = models.DateTimeField(default=timezone.now)
    amount = models.IntegerField(null=False)

    class Meta:
        abstract = True

class Income(Transaction):
    INCOME_CATEGORIES = [
        ("YEARLY", "Yearly"),
        ("MONTHLY", "Monthly"),
        ("ONETIME", "One-time"),
    ]

    category = models.CharField(max_length=9, choices=INCOME_CATEGORIES, null=False)

class Expense(Transaction):
    EXPENSE_CATEGORIES = [
        ("LUXURY", "Luxury"),
        ("ESSENTIAL", "Essential"),
    ]

    category = models.CharField(max_length=9, choices=EXPENSE_CATEGORIES, null=False)
    can_be_cheaper = models.BooleanField(default=False)

但这会为收入和费用模型创建 2 个表。我想要一个名为 Transaction 的表,其中包含这些子模型,这可能吗?

标签: djangodatabaseorm

解决方案


推荐阅读