【发布时间】:2021-08-21 09:33:36
【问题描述】:
我正在尝试配置 Django Stripe 订阅。
现在尝试通过以下代码设置 webhook 以创建新的客户数据。
views.py
import stripe
from django.conf import settings
from django.contrib.auth.models import User
from subscriptions.models import StripeCustomer
...
# Get the user and create a new StripeCustomer
user = User.objects.get(id=client_reference_id)
StripeCustomer.objects.create(
user=user,
stripeCustomerId=stripe_customer_id,
stripeSubscriptionId=stripe_subscription_id,
)
print(user.username + ' just subscribed.')
我遇到了错误
user = User.objects.get(id=client_reference_id)
因为我使用的是“自定义用户模型”。所以我把上面的代码改成
user = settings.AUTH_USER_MODEL.objects.get(id=client_reference_id)
但是,它仍然不起作用。 有没有其他写法来获取“用户数据”?
Traceback(最近一次调用最后一次):文件 “/home/app_admin/venv_ruling/ruling/subscriptions/views.py”,第 124 行, 在 stripe_webhook 用户 = settings.AUTH_USER_MODEL.objects.get(id=client_reference_id) AttributeError: 'str' 对象没有属性 'objects'
我正在按照本手册创建此应用 https://testdriven.io/blog/django-stripe-subscriptions/
以下是其他代码。
我的models.py
from django.conf import settings
from django.db import models
class StripeCustomer(models.Model):
user = models.OneToOneField(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
stripeCustomerId = models.CharField(max_length=255)
stripeSubscriptionId = models.CharField(max_length=255)
def __str__(self):
return self.user.username
accounts/models.py
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
class Meta:
verbose_name_plural = 'CustomUser'
我的设置.py
#used for django-allauth
AUTH_USER_MODEL = 'accounts.CustomUser'
我刚刚在此问题中提到了上述设置,但如果需要更多代码,请告诉我,我将使用该信息更新我的问题。谢谢
【问题讨论】:
-
请将您的错误添加到您的帖子中
-
@Tom Hamilton Stubber 我看不到任何错误。它只是不执行。
-
@Tom Hamilton Stubber 我得到了 Traceback Traceback(最近一次调用最后一次):文件“/home/app_admin/venv_ruling/ruling/subscriptions/views.py”,第 124 行,在 stripe_webhook 用户 = 设置中。 AUTH_USER_MODEL.objects.get(id=client_reference_id) AttributeError: 'str' object has no attribute 'objects'
-
您必须为您的用户模型定义
objects。您是从AbstractBaseUser继承的吗? docs.djangoproject.com/en/3.2/topics/auth/customizing/… -
@Tom Hamilton Stubber 我继承自 models.py 中的“AbstractUser”而不是“AbstractBaseUser”
标签: python django django-models django-rest-framework