django创建优惠券

时间:2020-07-07 04:37:04

标签: python django stripe-payments

我正在尝试创建一个函数,当用户单击“提交”时,将生成随机的6位字符代码并将其存储在数据库中,同时在条带中同时创建具有相同代码ID的代码。到目前为止,我已经能够在数据库中生成随机代码。但是对于Stripe,我不知道应该给Stripe Create coupon中的id字段赋予什么值。

views.py
def create_coupon(request,pk):
    code=Code.objects.get(id=pk)
    form = Coupon_Code(request.POST or None, request.FILES or None)
    if request.method == 'POST':
        if form.is_valid():
            form.save()
            coupon = stripe.Coupon.create(
                duration='forever',
                id=code,
                percent_off=20,
                max_redemptions=100,


                )

    context = {
            'form':form

        }
    return render(request, "coupon.html", context)
forms.py

from django.forms import ModelForm
from django.contrib.auth.models import User
from django import forms


from .models import Code







class Coupon_Code(ModelForm):
    class Meta:
        model = Code
        fields = '__all__'
models.py

from django.db import models
from django.core.validators import MinValueValidator, MaxValueValidator
from .utils import code_generator
from datetime import datetime, timedelta   


def compute_default_to():
    return datetime.now() + timedelta(days=20)







class Code(models.Model):       
    code = models.CharField(max_length=10, unique=True, blank=True)
    valid_from = models.DateTimeField(default=datetime.now, blank=True)
    valid_to = models.DateTimeField(default=compute_default_to)
    discount = models.IntegerField(default=15, validators=[MinValueValidator(0),MaxValueValidator(100)])


    active = models.BooleanField(default=True)






    def save(self, *args, **kwargs):
        if self.code is None or self.code == "":
            self.code = code_generator()
        super(Code, self).save(*args, **kwargs)

    def __str__(self):
        return self.code

0 个答案:

没有答案