我试图让我在动物类中的ID唯一,这样它就会自动递增,而无需用户将数据添加到字段中(因此隐藏了字段),但我无法弄清楚如何做到这一点。
现在我在models.py
:
class Animal(models.Model):
id = models.CharField(max_length=100, blank=True, unique=True, default=uuid.uuid4, primary_key=True)
name = models.CharField(max_length=200)
在我看来,我必须使id唯一,但目前它没有做任何事情。
以下是我的serialisers.py
供参考:
class AnimalSerialiser(serializers.HyperlinkedModelSerializer):
doctor = DoctorSerealiser(read_only=True)
class Meta:
model = Animal
fields = ('id' , 'name' , 'gender' , 'breed' , 'adoption' , 'vaccines', 'doctor')
答案 0 :(得分:0)
正如其他人在评论中提到的那样,你错误地定义了你的模型。 Django默认添加一个自动递增字段。请查看文档以获取更多信息 - https://docs.djangoproject.com/en/1.9/topics/db/models/#automatic-primary-key-fields。
你真的需要:
class Animal(models.Model):
name = models.CharField(max_length=200)
然后您仍然可以像animal.id
那样访问该字段。
UUID与自动递增ID完全不同。请参阅wiki - 它们基本上只是几乎不可能生成重复项的字符串。