【发布时间】:2018-10-16 06:35:30
【问题描述】:
我尝试在 django doc 的帮助下设置唯一的 6 位校验码。但我仍然不想要想要的结果意味着它接受任何数字或字符,但我希望这将只接受 6 个整数,并确保该数字对所有用户都是唯一的
models.py
from django.db import models
from django.contrib.auth.models import User
from datetime import datetime
from uuid import uuid4
import string
from string import digits
class Mvouchar(models.Model):
cheque_no = models.CharField(max_length=6, null=True, blank=True, unique=True)
dated = models.DateTimeField(auto_now_add=True,null=True, blank=True)
def id_generator(size=6, chars=string.digits):
return ''.join(random.choice(chars) for _ in range(size))
def save(self):
if not self.cheque_no:
self.cheque_no = id_generator()
while Mvouchar.objects.filter(cheque_no=self.cheque_no).exists():
self.cheque_no = id_generator()
self.dated = datetime.now()
super(Mvouchar, self).save()
def __str__(self):
if self.related:
return self.related.relation.username.title()
else:
return 'no related!'
class Meta:
verbose_name_plural = "Single Cheque Multiple Vouchar Of Users"
views.py
def mvouchar(request):
if request.method == "POST":
userdata = User.objects.get(username = request.user)
accountdata = Signs.objects.get(relation_id=userdata.id)
chq_no = request.POST['chequeno']
mini = Mvouchar(related_id=accountdata.id, cheque_no = chq_no)
mini.save()
messages.success(request, "Your Cheque is Created")
return HttpResponseRedirect("/mvouchar/")
return render(request, 'cheque/mvouchar.html', {})
【问题讨论】:
-
请修复视图中的缩进。
标签: django django-models django-forms django-templates django-views