我正在创建一个项目,我对此有一个疑问,因此该站点是否为django项目支持中心的支持中心,在用户填写通用表格后,该项目将为用户记录一个案例。
因此,我创建了一个模型名称Case,它具有case_number,email之类的字段。
现在,在views.py中,我正在使用CBV CreateView创建保存用户表单并创建简单的案例编号。
我被困在哪里,需要随机创建一个10位字符串字段的案例编号,但是在客户填写完表格后如何存储它?
因为字段中任何未提及的内容都会显示为客户的输入,而case_number不是我希望客户填写的内容,因此应自动生成。
我相信可以通过以下方式轻松完成:-
r2 = [random.randint(0,10),random.randint(0,10),random.randint(0,10),random.randint(0,10),random.randint(0,10) ,random.randint(0,10),random.randint(0,10),random.randint(0,10),random.randint(0,10),random.randint(0,10)]
case_number =(''.join(str(x)for r2中的x))
在CBV中,CreateView将让我随机创建一个数字并将其保存,但是我希望在后端完成此操作,所以我无法在create view中提及它,
这只是疑问,我已经尝试过了。
class Case:
case_number = models.CharField(max_length=10)
issue=models.TextField()
product=models.CharField(max_field=100)
def get_absolute_url(self):
return reverse('case:single')
class CaseCreation(CreateView):
model=Case
fields=('issue', 'product')
r2=[random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10)]
self.case_number = (''.join(str(x) for x in r2))
预期结果是我希望随机分配一个10位数字作为客户包装并保存在数据库中
DB是sql lite3。
答案 0 :(得分:0)
好的,是为了让大家知道我终于想出了答案,
我定义了在models.py中创建案例的逻辑,如下所示。
print
现在,在views.py中,我定义了一个函数,并调用了models.py中定义的函数并保存。
def case_generation(self):
r2=[random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10), random.randint(0,10)]
self.case_number = (''.join(str(x) for x in r2))
self.save()
在这之间,我定义了urls.py,以便用户生成大小写,这些函数将自己调用。
如果您有兴趣查看完整的代码,请不要担心,如有需要,请告诉我。 ;)