Python Django模型中的自定义id字段

Python Django模型中的自定义id字段,python,django,Python,Django,我正在Django制作一个web应用程序。我想在我的模型中使用自定义id字段,并且我知道uuid模块。问题是我不知道该把这个逻辑放在哪里。我不想使用Django的AutoField。我希望这样,如果输入一行,则此id字段必须是自定义字段,而不是自动字段。我想到了一个愚蠢的想法,那就是在插入行之后用我的自定义id更改id字段。有人能帮我解决这个问题吗。非常感谢您的帮助 如果要指定自定义主键,只需指定 primary_key=在一个字段上为True。如果Django看到你 显式设置Field.pr

我正在Django制作一个web应用程序。我想在我的模型中使用自定义id字段,并且我知道uuid模块。问题是我不知道该把这个逻辑放在哪里。我不想使用Django的AutoField。我希望这样,如果输入一行,则此id字段必须是自定义字段,而不是自动字段。我想到了一个愚蠢的想法,那就是在插入行之后用我的自定义id更改id字段。有人能帮我解决这个问题吗。非常感谢您的帮助

如果要指定自定义主键,只需指定 primary_key=在一个字段上为True。如果Django看到你 显式设置Field.primary_键,它不会添加自动id 专栏

所以你想要(来自)


我想你不必给字段命名
id

你能举例说明你想要的id值是什么吗?谢谢。对于用户模型,我想使用id作为用户+随机生成的密钥。例如,X用户id应该是“user12djghdhgdbxbfhdty”。这样可以很容易地确定此id是为用户提供的,并且足够大,可以允许足够多的用户。请查看并将其与UUID相结合。这并不完全是我想要的,但仍然非常接近。谢谢嗨,uuid4有可能给出两个相同的ID吗?@FabioMagarelli理论上是的,但它有16个随机字节,所以实际上你不必担心它。要获得50%的碰撞几率(即两个UUID具有相同的值),您必须在85年内每秒生成10亿个UUID。
import uuid
from django.db import models

class MyUUIDModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    # other fields