Создание модели Замораживание 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.

Вернуться на верх