在当前的djStripe配置中说:
客户用户模型has_active_subscription属性
在模板或其他地方工作非常有用 需要反复检查订阅状态。 cached_property decorator缓存对象的has_active_subscription结果 例如,优化它以便重复使用。
并要求您添加此代码:
@cached_property
def has_active_subscription(self):
"""Checks if a user has an active subscription."""
return subscriber_has_active_subscription(self)
但对我来说,答案总是错误的
发生了什么事?
答案 0 :(得分:0)
在查看了djStripe的代码后,我提供了2个解决方案,你可以在那里阅读:
def user_has_active_subscription(user):
warnings.warn("Deprecated - Use ``subscriber_has_active_subscription`` instead. This method will be removed in dj-stripe 1.0.", DeprecationWarning)
return subscriber_has_active_subscription(user)
然后你必须改用它:
@cached_property
def has_active_subscription(self):
"""Checks if a user has an active subscription."""
return user_has_active_subscription(self)
但那仍然不适合我,当我还在读书时,我发现了这个警告:
Helper功能,用于检查订户是否具有有效订阅。 如果订户是AUTH_USER_MODEL的实例,则会错误地进行配置 和get_user_model()。is_anonymous == True。
我的问题就在于,我从我的个人资料中调用了这个函数,然后修复了它:
@cached_property
def has_active_subscription(self):
"""Checks if a user has an active subscription."""
return user_has_active_subscription(self.user)
更新:我的错误是我当前系统的问题,您可以在此处阅读更多内容:https://github.com/pydanny/dj-stripe/issues/203#issuecomment-110230688