post_save
слишком поздно в процессе регистрации или принятия мер в отношении источника объекта.
post_save
- это сигнал, отправленный из базы данных / ORM, т.е. это то, что вызывается после сохранения. Принимает ли функция сохранения какие-либо данные об источнике? Нет. Эта функция помещает что-нибудь в ORM или базу данных об источнике? Нет.
Вы хотите выполнить любое действие в функции view
, в которой это происходит. Вот самый простой способ сделать это, который я могу придумать. Я предполагаю, что вы предпочитаете выбрать действие, чтобы сохранить, где оно было создано в базе данных.
Рассмотрим следующее:
class YourObject(models.Model):
name = models.CharField(max_length=30)
creation_location = models.CharField(max_length=30, default="Admin")
Здесь у нас есть объект с name
и creation_location
, целью второго из которых является определение места создания объекта. Чтобы избежать необходимости редактировать функциональность Admin
, поскольку это может быть затруднительно, значение по умолчанию установлено на Admin
.
На представление:
def create_model_view(request):
your_object = YourObject.objects.create(name='FirstObject', creation_location="View")
Здесь у нас есть представление с функцией создания объекта. При инициализации значение по умолчанию Admin для creation_location
перезаписывается и устанавливается на View.