Python 如何通过扩展django模型向其添加额外字段?
我正在使用Pinax Stripe()开发django应用程序。Pinax stripe是一个捆绑应用程序,其模型名为“Plans”。现在在我的应用程序中,我想在应用程序中的模型“Plans”中添加一些额外的字段,但不修改原始的pinax stripe应用程序 大概是这样的: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
#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中的正常继承类似,而且在运行迁移时会迁移自定义属性,因为原始的pinaxPlan
是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