相关疑难解决方法(0)

与Django中的抽象模型相关的ForeignKey字段

我有这个型号:

class BaseModel(models.Model):
    ....

    class Meta:
        abstract = True


class ModelA(BaseModel):
    ....

class ModelB(BaseModel):
    ....


class MyExtModel(models.Model)
    myfield = models.ForeignKey(BaseModel)
Run Code Online (Sandbox Code Playgroud)

但这不正确,因为我BaseModel喜欢Abstract.事实上,当我尝试makemigration命令时,我有一个错误.

错误是:

ERRORS:
myapp.MyExtModel.myfield: (fields.E300) Field defines a relation with model 'BaseModel', which is either not installed, or is abstract.
Run Code Online (Sandbox Code Playgroud)

有没有办法使用抽象基础模型?

我也试过用:

myfield = models.ForeignKey(BaseModel, related_name="%(app_label)s_%(class)s_related")
Run Code Online (Sandbox Code Playgroud)

python django foreign-keys abstract

12
推荐指数
3
解决办法
5032
查看次数

如何在 Django 中自定义 related_name 参数

我有一个抽象模型和两个子模型,例如:

class Invoice(models.Model):
    user = models.ForeignKey("User", related_name='%(class)s')

    class Meta:
        abstract=True

class SaleInvoice(Invoice):
    field_sale = models.CharField(max_length=255)

class PurchaseInvoice(Invoice):
    field_purchase = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)

现在,子模型的反向名称将是saleinvoicesand purchaseinvoices。但我需要的是sale_invoicespurchase_invoices。如何实现这一目标?CamelCase 之间有一个下划线。

python django django-models django-forms python-3.x

3
推荐指数
1
解决办法
711
查看次数