Автоматическое увеличение id в базе данных Django SQLIite
Я установил поле image_id как auto increment. Но проблема возникает, когда, скажем: Я ввожу изображение в базу данных из админпанели django, ему присваивается auto inc id 1. Затем я удаляю это же изображение. И когда я вставляю новое изображение, его ID присваивается как 2, почему он не присваивается как 1? Поскольку я удалил изображение с id 1, технически id 1 пуст и должен быть присвоен следующему входящему изображению. Подскажите, пожалуйста, решение.
(Обновленное требование): Могу ли я каким-либо образом получить минимальный присвоенный идентификатор и максимальный присвоенный идентификатор. Я передаю этот диапазон в функцию, которая генерирует случайное число. Как я могу получить минимальный назначенный идентификатор и максимальный назначенный идентификатор
А затем, когда я вставляю новое изображение, его ID присваивается как 2. почему он не присваивается как 1?
Именно так работают первичные ключи, они всегда увеличивают значение. Это не специфично для SQLite, так делает любая база данных. Удаленный идентификатор не будет повторно использован.
Чтобы генерировать случайное изображение каждый раз, вы можете сделать это следующим образом:
import random
def your_view(request):
count_images = Image.objects.count()
img = random.randint(0, count_images)
random_image = Image.objects.all()[img]
# show your random image