Создание модели Замораживание Django (или Django Rest Framework)
У меня эта модель:
class AllowedUser(models.Model):
PLACE_CHOICES = (
(1, 'Loc1'),
(2, 'Loc2'),
(3, 'Loc3'),
(4, 'Loc4'),
(5, 'Loc5'),
)
id = models.CharField(primary_key=True, max_length=8, unique=True, default=generate_unique_id)
name = models.CharField(max_length=60)
place = models.IntegerField(choices=PLACE_CHOICES)
current_version = models.CharField(max_length=8, default="0.0.1")
last_updated = models.DateTimeField(default=datetime.datetime(1970,1,1,0,0,0))
def __str__(self):
return self.id + ' - ' + self.name
А когда я пытаюсь сделать это в оболочке или даже во время выполнения с DRF, это просто ничего не делает.
В DRF он останавливается без ошибки сразу после serializer.save()
, в Shell он замирает (не совсем замирает, а ждет чего-то) сразу после AllowedUser(...Data...)
. В качестве базы данных я использую SQLite3.
На самом деле я не знаю, в чем здесь корень проблемы. У кого-нибудь есть идея, что заставляет его задерживаться?
Заранее спасибо.
Проблема началась на более раннем фрагменте, который я не опубликовал, эта функция:
def generate_unique_id():
timeout = 0;
while True:
timeout += 1;
# Generate a random 8-character alphanumeric string
characters = string.ascii_letters + string.digits # Include both letters and digits
new_id = ''.join(random.choice(characters) for _ in range(8)).upper()
if len(AllowedUser.objects.filter(id=new_id)) == 0:
return new_id
else:
continue
В исправленной версии, показанной выше, используется AllowedUser.objects.filter
, в то время как в версии, вызвавшей ошибку, используется AllowedUser.objects.create
и отсутствует параметр not null.