Я хочу сохранить записи в моей базе данных, чтобы их можно было удалить позже. Для того, чтобы определить их, я поставил атрибут key
в моем классе Entry
в models.py
, как показано ниже:Django Python unique = True Expression
class Entry(models.Model):
name = models.CharField(max_length=200)
key = models.IntegerField(unique=True,default=0)
Каждый раз, когда я начинаю сервер, я найду самый большой ключ, который находится в Entry.objects.all()
.
Каждый раз, когда я создаю первый новый Entry
после запуска сервера, я хочу взять key
я нашел в самом начале, увеличить его на 1, а затем установить его в качестве key
для моего нового Entry
. Для каждого последующего Entry
я просто возьму key
предыдущего элемента, увеличьте его на 1 и. установите его как key
для моих новых Entry
Однако, прежде чем я это сделаю, я хочу знать, что Django считает уникальным. Например, если я добавил три записи изначально с ключами 1
, 2
и 3
, а затем я удаляю последний элемент клавишей 3
. Если я затем перезагружу сервер, самый большой key
я найду 2
, а следующий Entry
Я добавлю, будет key
2 + 1, что равно 3
.
Это key
уникально? Он был введен ранее, но я удалил этот элемент вправо? Итак, уникальность определяется тем, что я ввел в прошлом, или просто в зависимости от элементов, находящихся в настоящее время в базе данных?
Кроме того, не Джанго постоянно отслеживать все экземпляры Entry
, что я добавил, так что это будет как-то знать, если я добавил Entry
с key
3
раньше?
Обратите внимание, что мои данные хранятся в файле с именем db.sqlite3
Спасибо.
Возможно, вы хотите использовать функцию автоинкремента. – tcooc