基于djangoadmin开发,如何新用户自动创建token

可以使用Python的secrets模块来生成一个包含大写字母和数字的32位token。以下是一个简单的例子:

import secrets
import string

def generate_token():
    alphabet = string.ascii_uppercase + string.digits
    token = ''.join(secrets.choice(alphabet) for _ in range(32))
    return token

在上面的代码中,secrets.choice(alphabet)用于从包含大写字母和数字的alphabet字符串中随机选择一个字符,然后通过循环生成32位的token。你可以将这个函数用于你的Django模型:

from django.db import models

class YourModel(models.Model):
    token = models.CharField(verbose_name="TOKEN", max_length=32, default=generate_token)

这样,每当你创建一个新的YourModel实例时,都会自动生成一个32位的包含大写字母和数字的token。

同时在admin.py中注册后可显示出来,token只能自动生成,不能手工修改,则需要把对应的项设置为禁止编辑,简单的方法如下,使用readonly_fields

# admin.py
from django.contrib import admin
from .models import YourModel

class YourModelAdmin(admin.ModelAdmin):
    readonly_fields = ('your_field_name',)  # 在这里添加你想禁止修改的字段名称

admin.site.register(YourModel, YourModelAdmin)

这样,your_field_name 将会在编辑页面中显示为只读字段,无法进行编辑。

posted @ 2024-01-26 11:50  super_ip  阅读(91)  评论(0编辑  收藏  举报