可以使用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
将会在编辑页面中显示为只读字段,无法进行编辑。