我目前正在使用 Django 创建一个网站,我已经让管理表单正常工作,但是我想要它,所以当我创建所有者时,Django 会生成一个包含特定数量数字的随机 ID,并且该 ID 将显示在旁边所有者的姓名和姓氏。下面是django中使用的models.py:
class Owner(models.Model):
First_Name = models.CharField(max_length=100)
Last_Name = models.CharField(max_length=100)
email = models.CharField(max_length=100)
phone = models.IntegerField()
street_address = models.CharField(max_length=30)
Suburb = models.CharField(max_length=30)
postcode = models.IntegerField()
owner_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
def __str__(self):
return self.First_Name +" "+ self.Last_Name
class Pet_Description(models.Model):
description_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
species = models.CharField(max_length=50)
pet_name = models.CharField(max_length=50)
weight_in_kg = models.IntegerField()
height_in_cm = models.IntegerField()
gender = models.CharField(max_length=10)
age = models.IntegerField()
owner_id = models.ForeignKey(Owner, on_delete=models.CASCADE)
overweight = models.CharField(max_length=50)
healthy = models.CharField(max_length=50)
indoor_or_outdoor = models.CharField(max_length=50)
def __str__(self):
return self.pet_name
class Booking(models.Model):
booking_ID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
date = models.DateField()
time = models.TimeField()
owner_id = models.ForeignKey(Owner, on_delete=CASCADE)
def __unicode__(self):
return self.booking_ID
class Payment(models.Model):
payment_ID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
payment_type = models.CharField(max_length=50)
booking_ID = models.ForeignKey(Booking, on_delete=CASCADE)
def __unicode__(self):
return self.payment_ID
class Pet_Illness(models.Model):
pet_ID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
owner_id = models.ForeignKey(Owner, on_delete=CASCADE)
type_of_illness = models.CharField(max_length=50)
description_of_illness = models.CharField(max_length=200)
def __str__(self):
return self.type_of_illness + ": " + self.description_of_illness
class Pet_History(models.Model):
pet_history_ID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
pet_ID = models.ForeignKey(Pet_Description, on_delete=CASCADE)
Visited_vet_before = models.CharField(max_length=50)
First_time_of_illness = models.DateField()
Special_Medication = models.CharField(max_length=50)
Medication_Description = models.CharField(max_length=50)
def __unicode__(self):
return self.pet_history_ID
答案 0 :(得分:0)
你可以像这样在views.py中存储uuid:
# importing uuid
import uuid
# creating an instance of
# uuid object
test = uuid.uuid4()
# creating a instance of
# Model
obj = modelName.objects.create(field_name = test)
obj.save()
答案 1 :(得分:0)
你可以使用shortuuid
并在模型创建过程中手动保存
这是代码,这个代码会产生随机数
import shortuuid
s = shortuuid.ShortUUID(alphabet="0123456789")
otp = s.random(length=5)
答案 2 :(得分:0)
通用唯一标识符 (UUID) 是一个 128 位的数字。 this article might help in better understanding UUID
<块引用>在 103 万亿个版本 4 UUID 中找到重复项的概率是十亿分之一。这意味着如果你“每秒”产生一个 UUID,持续 3,266,108 年,那么你的碰撞几率是 0.000000001。
或
你可以使用 shortuuid shortuuid