Python 如何通过扩展django模型向其添加额外字段?

Python 如何通过扩展django模型向其添加额外字段?,python,django,Python,Django,我正在使用Pinax Stripe()开发django应用程序。Pinax stripe是一个捆绑应用程序,其模型名为“Plans”。现在在我的应用程序中,我想在应用程序中的模型“Plans”中添加一些额外的字段,但不修改原始的pinax stripe应用程序 大概是这样的: #models.py from pinax-stripe.models import Plan class UserProfile(models.Model): #write the extra fiel

我正在使用Pinax Stripe()开发django应用程序。Pinax stripe是一个捆绑应用程序,其模型名为“Plans”。现在在我的应用程序中,我想在应用程序中的模型“Plans”中添加一些额外的字段,但不修改原始的pinax stripe应用程序

大概是这样的:

    #models.py
from pinax-stripe.models import Plan

class UserProfile(models.Model):
    #write the extra fields here

有什么方法可以让我这样做,然后向管理员注册,这样我就可以将数据添加到管理面板中的那些字段中?

您可以继承
计划
模型并添加自己的属性:

from pinax-stripe.models import Plan

class MyPlan(Plan):
    # add your attributes
    pass
这与python中的正常继承类似,而且在运行迁移时会迁移自定义属性,因为原始的pinax
Plan
models.Model
的子类


但是,请注意不要使用pinax
Plan
模型中已经存在的属性名称,因为您的新模型将自动从
Plan
中获取所有属性,Django无法为重复字段编写迁移。

您可以简单地将
Plan
子类化,并添加您想要的任何字段/方法:

from pinax-stripe.models import Plan

class UserProfile(Plan):
    #write the extra fields here

我建议您使用
OneToOne
关系


您可以将pinax文件夹从下载到您的应用程序中,并根据您的要求编辑models.py和admin.py文件。

谢谢@Moses因为您了解pinax stripe,您知道如何使用代码(可能是webhook或其他东西)将计划添加到我的计划中吗?@Elisha512不幸的是,我从来没有理由使用
pinax stripe
,所以我对它的工作原理知之甚少。
from pinax-stripe.models import Plan

class UserProfile(models.Model):
    plan = models.OneToOneField(Plan , on_delete=models.CASCADE)
    #write the extra fields here