Модели автозаполнения в Django
Что я пытаюсь реализовать - это систему приглашений, пока я разрабатываю свой сайт, но я новичок в том, как работает Django.
На данный момент я хочу иметь возможность создавать случайные строки в панели администратора, чтобы они добавлялись в базу данных, а затем требовались для регистрации пользователя. В конечном итоге я хочу создать систему групп пользователей на переднем сайте, где я смогу генерировать строки в панели администратора, а затем рассылать их таким образом, но я займусь этим позже.
У меня модель успешно отображается в панели администратора, но я не знаю, как сделать текстовое поле, которое автоматически заполняется каждый раз, когда я создаю новое, и чтобы строка была случайной каждый раз.
class randomString(models.Model):
name = models.CharField(max_length=200)
random = models.ManyToManyField(get_random_string(length=6))
Это мой текущий код, который выдает ошибку, но я предполагал, что так и будет, я сделал это так, чтобы проверить и убедиться, что все так просто. Я обнаружил, что это не так.
Вы можете просто использовать UUID:
from uuid import uuid4
class randomString(models.Model):
name = models.CharField(max_length=200)
random = models.UUIDField(unique=True, default=uuid4)
Если UUID слишком длинный, можно сгенерировать более короткую строку:
def generate_random():
from django.utils.crypto import get_random_string
return get_random_string(length=11)
class randomString(models.Model):
name = models.CharField(max_length=200)
random = models.CharField(default=generate_random, max_length=11, unique=True)