我想从与当前登录用户关联的模型中导入一个变量。我的模型使用与内置用户模型的一对一关系。导入变量后,我想将当前登录的任何用户的变量更改为True
我试过搞乱我的import语句,让它正常工作它给我“PurchaseHistory()得到了一个意外的关键字参数'id'”当我试图编辑变量。我知道这是我对在网上找到的一个代码片段的误解,我只希望有人能帮我修复它
#models.py
class PurchaseHistory(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
InvestingOne = models.BooleanField(default=False)
def __str__(self):
return self.user.username
class Meta:
abstract = True
app_label = 'PurchaseHistory'
#payments/views.py
def charge(request):
if request.method == 'POST':
charge = stripe.Charge.create(
amount=500,
currency='usd',
description='A Django charge',
source=request.POST['stripeToken']
)
post = PurchaseHistory(id=InvestingOne)
post.InvestingOne = True
post.save()
return render(request, 'charge.html')
我相信我提供了很好的信息来帮助我解决这个问题。让我知道如果有任何额外的细节,我应该提供。谢谢你
编辑:这是我的文件结构。我认为唯一可能使这变得复杂的是,我的模型在主项目文件夹中,而我的视图在一个名为payments的应用程序中。 [img]https://i.imgur.com/5zs10MI.png[img]
首先,你的模型应该如下所示
我看到您有抽象模型,不能在查询中使用https://docs.djangoproject.com/en/2.2/topics/db/models/#abstract-base-classes
进行迁移;迁移并进一步
或者如果您想创建对象而不是更新
在Django<;=1.9用
is_authenticated()
代替is_authenticated
相关问题 更多 >
编程相关推荐