Есть ли способ отличить пользователя от добавления новых данных в базу данных или просто изменения старых данных в django?

У меня есть ограничение в models.py, что в некоторых таблицах не может быть больше N строк, поэтому я проверяю их перед сохранением данных, но также отображает ошибку, когда таблица заполнена, но я пытаюсь изменить некоторые строки.

Можно ли отличить пользователя от добавления новых данных в базу данных или изменения старых данных?

1 ответ

Метод save вызывается как при создании объекта, так и при его обновлении.

Однако, когда объект создается, pk объекта - None пока save закончится. Итак, что вы можете сделать, это перезаписать метод save ваших моделей и проверить, имеет ли сохраненный объект значение pk None.

а именно

def save(self, *args, **kwargs):
 if self.pk == None:
 # this object is being created
 else:
 # this object is being updated

licensed under cc by-sa 3.0 with attribution.