Привязать django-robokassa к проекту

Рейтинг: 1Ответов: 0Опубликовано: 06.05.2015

Добрый день! Впервые столкнулся с привязкой платёжки к проекту на 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 привязать Робокассу? То есть, в идеале, хотелось бы что-то вроде - пользователь ввёл в это поле сумму, нажал "сохранить", его перебросило на Робокассу, после Робокассы пополнился баланс в личном кабинете.

Ответы

Ответов пока нет.