【发布时间】:2020-08-09 09:21:53
【问题描述】:
我正在处理一个 Django 项目,我想创建一个始终随机生成的字段,以便它们在数据库中是唯一的,但我似乎不知道如何做到这一点。我尝试了以下方法:
from django.db import models
# Random character generation for
# the unique short URLs
import string, random
def random_url(n):
return ''.join(random.choice(string.ascii_letters) for x in range(n))
#print(random_id(6)) #testing the function
#Class for the URL
class ShortURL(models.Model):
original_url = models.CharField(max_length=200)
short_url = models.CharField(max_length=100, primary_key=True, default=random_url(6))
timestamp = models.DateTimeField(auto_now=True)
在我的管理员视图中。所有“URL”都具有我不想要的相同随机代码。例如ABYpsB
请帮忙
【问题讨论】:
-
这能回答你的问题吗? Generate a Unique String in Python/Django
-
它并没有真正发挥作用。是的,它会生成一个随机字符串(就像我的函数一样),但在创建新 URL 时它不是随机的。当我在管理员中创建新 URL 时,它们都有相同的随机字符串,这不能解决我的问题。无论如何,谢谢 - 我找到了一种更好的生成字符串的方法