我有一个测试网站,它将使用条带和djstripe 0.8.0进行订阅付款。
我设置了测试数据以测试支付系统是否正常工作。
然后我删除了条带测试数据。
但是,当我打开django管理控制台并导航到djstripe>客户,我显示了以下记录,但没有附加用户/客户:
相应的数据库表中没有记录。我甚至从条带和数据库本身删除了客户。仍然无法摆脱这些记录。
如果我尝试访问记录或从管理控制台删除记录,我收到以下错误消息:
属性错误:' NoneType'对象没有属性'电子邮件'
File "C:\Users\me\desktop\myappname\env3\lib\site-packages\djstripe\settings.py", line 94, in get_subscriber_model_check_subscriber_for_email_address(subscriber_model, "The customer user model must have an email attribute.")
File "C:\Users\me\desktop\myappname\env3\lib\site-packages\djstripe\settings.py", line 70, in _check_subscriber_for_email_address
if ("email" not in subscriber_model._meta.get_all_field_names()) and not has attr(subscriber_model, 'email'):
AttributeError: 'Options' object has no attribute 'get_all_field_names'
如何删除这些记录?
答案 0 :(得分:0)
首先我建议更新到最新的djstripe版本(我相信它现在是1.0.0)
关于删除记录: 从djstripe查看models.py 类Customer ,很明显删除 default_source (即Stripe Customer)并不是要从djstripe表中删除Customer
class Customer(StripeCustomer):
...
default_source = ForeignKey(StripeSource, null=True, related_name="customers", on_delete=SET_NULL)
因为它设置为 on_delete = SET_NULL
我要联系djstripe(authors)的作者(Daniel Greenfield是一个好人)或在相应的GitHub页面上提出问题(Github djstripe)
总的来说,我认为,您的软件会启动删除订阅。在条带界面中删除它们会使您的代码和djstripe在冷开放时出现:)
作为核心修复,我会直接进入相应的数据库并删除这些记录。
答案 1 :(得分:0)
您必须从auth_user模型中删除用户; djstripe将auth_user模型视为其客户模型。请阅读文档以了解清楚。 https://dj-stripe.readthedocs.io/en/stable-1.0/reference/settings.html#djstripe-subscriber-model-settings-auth-user-model