Мне нужно вычитать одно целое число другого и сохранить результат. Это своего рода способ оплаты. Никогда не делать это раньше, так что код ниже - его то, что я пытаюсь сделать, на мой взгляд:Выделите одно целое из другого и сохраните
def checkoutstatus(request, article_id):
if request.POST:
article = Article.objects.filter(id=article_id)
article.article_users.add(request.user)
balance = int(UserProfile.objects.filter(balance=user_balance))
cost = int(Article.objects.filter(cost=article_cost))
new_balance = balance - cost
article.save()
Так я подключил User
к Article
модель первой. Тогда мне нужно вычитать Article
модели поле article_cost
от UserProfile
модели (которая простирается User
с ForeignKey
) полями user_balance
и сохранить результат обратно в user_balance
...
Как вы можете видеть выше коды, я попытался сделать вычитание, но как я могу сохранить результат обратно до user_balance
?
Кроме того, мне нужен int
конвертер, если оба поля в обеих моделях работают как IntegerField
?
Мое приложение article
:
from django.db import models
from django.contrib.auth.models import User
from django.db import models
class Article(models.Model):
class Meta():
db_table = 'article'
article_users = models.ManyToManyField(User)
article_title = models.CharField(max_length=200, blank=False, null=False)
article_content = models.IntegerField(choices=CONTENT_CHOICES, null=True, blank=True)
article_cost = models.IntegerField(default=0)
article_likes = models.IntegerField(default=0)
Мое приложение userprofile
:
import PIL
from django.db import models
from django.contrib.auth.models import User
from PIL import Image
from django.db import models
from article.models import Article
class UserProfile(models.Model):
user = models.OneToOneField(User)
user_picture = models.ImageField(upload_to='users', blank=False, null=False, default='users/big-avatar.jpg')
user_balance = models.IntegerField(default=0)
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u) [0])
Также я создал приложение orderstatus
, что нужно, чтобы сохранить историю заказов в БД:
from django.db import models
from django.contrib.auth.models import User
from article.models import Article
class OrderHistory(models.Model):
class Meta():
db_table = 'order'
user = models.ForeignKey(User)
article = models.ForeignKey(Article)
purchase_date = models.DateTimeField(auto_now_add=True)
И напишите для него представление (которое вы можете увидеть в начале этого почта):
from django.shortcuts import render, render_to_response, redirect, Http404
from django.core.context_processors import csrf
from django.contrib import auth
from django.template import RequestContext
import datetime
from django.contrib.auth.models import User
from article.models import Article
from userprofile.models import UserProfile
def checkoutstatus(request, article_id):
if request.POST:
article = Article.objects.filter(id=article_id)
article.article_users.add(request.user)
balance = int(UserProfile.objects.filter(balance=user_balance))
cost = int(Article.objects.filter(cost=article_cost))
new_balance = balance - cost
article.save()
Пожалуйста, предоставьте свой 'models.py', чтобы мы могли лучше понять область действия. Кроме того, откуда берется 'user_balance'? – Hybrid
@Hybrid Сообщение обновлено. При условии, что все данные, которые могут вам помочь, я думаю ... –
'user_balance' не предоставляется на ваш взгляд !! – Othman