djStripe subscriber_has_active_subscription始终为false

时间:2015-05-30 12:52:38

标签: django stripe-payments

在当前的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)

但对我来说,答案总是错误的

发生了什么事?

1 个答案:

答案 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