我正在尝试创建一个函数,当用户单击“提交”时,将生成随机的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