Привязать django-robokassa к проекту
Добрый день! Впервые столкнулся с привязкой платёжки к проекту на Django. Задачка, в общем, простая - пользователь в своём профиле в поле "Баланс" вводит сумму и нажимает "Пополнить". Далее, при покупках контента на сайте, суммы просто списываются со счёта в его личном кабинете...
У меня получилась вот такая модель профиля:
# -*- coding: utf-8 -*-
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', verbose_name = u'Загрузить изображение')
user_balance = models.IntegerField(default=0)
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])
Форма:
class UserForm(forms.ModelForm):
class Meta:
model = User
first_name = forms.CharField(label='')
fields = ('first_name', 'last_name', 'email', )
widgets = {
'first_name': forms.TextInput(attrs={'placeholder': 'Ваше имя', 'required': True}),
'last_name': forms.TextInput(attrs={'placeholder': 'Ваша фамилия', 'required': True}),
'email': forms.TextInput(attrs={'placeholder': 'Ваш E-Mail', 'required': True}),
}
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('user_picture', 'user_balance')
widgets = {
'user_picture': forms.FileInput(attrs={'class': 'upload_img'}),
}
И вьюшка:
def userprofile(request, username):
u = User.objects.get(username=username)
if request.POST:
user_form = UserForm(request.POST, instance=request.user)
user_profile = UserProfileForm(request.POST, request.FILES, instance=request.user.profile)
if user_form.is_valid():
user_form.save()
if user_profile.is_valid():
user_profile.save()
else:
user_form = UserForm(instance=request.user,
initial={
'first_name': request.user.first_name,
'last_name': request.user.last_name,
'email': request.user.email,
})
user = request.user
profile = user.profile
user_profile = UserProfileForm(instance=profile)
return render_to_response('profile.html', {'user_form': user_form, 'user_profile': user_profile}, context_instance=RequestContext(request))
Как к полю user_balance
привязать Робокассу? То есть, в идеале, хотелось бы что-то вроде - пользователь ввёл в это поле сумму, нажал "сохранить", его перебросило на Робокассу, после Робокассы пополнился баланс в личном кабинете.
Источник: Stack Overflow на русском