在Djang中使用uuid生成和存储唯一ID

2024-04-26 00:33:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用python的uuid生成一个唯一的用户ID,然后将其存储在mysql数据库中。 我不知道什么时候应该生成ID

这是我的forms.py

from django import forms
from django.contrib.auth.models import models
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
import uuid

class RegistrationForm(UserCreationForm):
    email = models.EmailField(required=True)
    user_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

    class meta:
        model = User
        fields = (
            'first_name',
            'last_name',
            'email',
            'password1',
            'password2'
        )

def save(self, commit=True):
    user = super(RegistrationForm, self).save(commit=False)
    user.first_name = self.cleaned_data['first_name']
    user.last_name = self.cleaned_data['last_name']
    user.email = self.cleaned_data['email']
    user.user_id = uuid.uuid4()

    if commit:
        user.save()

    return user

这是我的注册部分视图.py在

^{pr2}$

Tags: djangonamefromimportselfauthtrueuuid
1条回答
网友
1楼 · 发布于 2024-04-26 00:33:19

首先,您要做的是Extending core User model。你必须从两种方法中选择一种。我建议您创建一对一的模型,其中包含所有必要的附加字段,例如您的uuid ID

第二,密码

user_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

用于描述中的字段模型.py(不在表单中)。如果你把它放在这里,你就不必考虑生成id,你已经为它设置了一个可调用的uuid4。更多信息请访问docs。在

相关问题 更多 >