我已經做了一個簡單的商店,用戶可以在他的個人資料中填充餘額,然後可以購買一些數字內容。 現在我需要保存所有購買在一個單獨的模型,在那裏我可以看到,誰買了什麼,什麼時候... 但我不明白,如何在用戶購買物品後在模型中保存該信息... 是我現在...創建購物歷史
與平衡用戶模式和退出功能:
class UserProfile(models.Model):
class Meta():
db_table = 'userprofile'
user = models.OneToOneField(User)
user_picture = models.ImageField(upload_to='users', blank=False, null=False, default='users/big-avatar.jpg')
user_balance = models.DecimalField(default=0, max_digits=10, decimal_places=2)
def withdraw(self, amount):
self.user_balance = self.user_balance - amount
def can_purchase_amount(self, amount):
if amount <= self.user_balance:
return True
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u) [0])
的orderstatus
的應用程序,在那裏我做了一個模型OrderHistory
訂貨歷史:
class OrderHistory(models.Model):
class Meta():
db_table = 'order_history'
user = models.ForeignKey(User)
article = models.ForeignKey(Article)
purchase_date = models.DateTimeField(auto_now_add=True)
一壓腳提升用戶打「買入」,他推出POST
與action
,在orderstatus
應用程序,遵循以views.py
:
def checkoutstatus(request, article_id):
user_profile = UserProfile.objects.get(user=request.user)
article = Article.objects.get(id=article_id)
if user_profile.can_purchase_amount(article.article_cost):
user_profile.withdraw(article.article_cost)
user_profile.save()
article.article_users.add(request.user)
return redirect('/articles/get/%s' % article_id)
所以,這種觀點的檢查是用戶有足夠的錢在他的user_balance
,如果是,做一個withdraw
。因此,如果購買完成,我需要在OrderHistory
型號中保存該購買...從未做過此類任務......我該怎麼做?
哦......不要以爲有些事情有時候這麼簡單......)))謝謝。 –