Django-Heroku-删除Prod中的对象时出现调试错误500



问题:

  • 尝试删除Prod.中的用户帐户时出现服务器错误500

场景:

  • 在Dev中删除用户帐户-工作正常
  • 在Prod中创建用户帐户-工作正常
  • 删除Prod中的用户帐户-错误500

view.py:

@login_required 
def account_destroy_view(request, id=None, *args, **kwargs):   
try:
obj = request.user   
except request.user.DoesNotExist:
raise Http404   
if request.method == "POST":
try:
customer = StripeRecord.objects.get(user_id=obj.id)
stripe.api_key = config('STRIPE_API_KEY')
stripe.Customer.delete(customer.stripe_customer_id)
except StripeRecord.DoesNotExist:
pass
obj.delete()
return redirect("/")
return render(request, "accounts/delete.html", {"object": obj})

账户模型.py:

class User(AbstractUser):
date_time = models.DateTimeField(default=datetime.datetime.now())

条纹模型.py:

User = settings.AUTH_USER_MODEL
class StripeRecord(models.Model):
user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
...

Heroku日志:

Sep 23 19:37:37 weatherapp app/web.1 10.1.24.136 - - [24/Sep/2021:02:37:36 +0000] "POST /delete/ HTTP/1.1" 500 145 "https://www.weatherapp.com/delete/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52"

我所尝试的&问题:

  • 我检查了Stripe日志,该对象已在Stripe上删除。因此,问题不在Stripe env var或集成上
  • 尝试使用Prod中的Django管理工具直接删除用户帐户-仍然错误500。我怀疑这是因为我用AbstractUser创建了这个模型,而它是另一个模型的外键
  • 如何获得有关错误的更多详细信息?(heroku logs --tail只返回我上面显示的内容)

StripeRecord表在Prod中缺少主键,因为我在对模型进行更改后错过了迁移。

重置Prod DB后,问题得到了解决(幸运的是,这是一个个人项目)。

相关内容

  • 没有找到相关文章

最新更新