Посмотрите, пришла ли от Django форма от администратора - PullRequest
0 голосов
/ 10 октября 2019

Я новичок в django, поэтому я прошу прощения, если это спросили. Я использую сигнал post_save для запуска задачи при создании нового объекта. Мне нужно проверить, была ли форма отправлена ​​со страницы администратора или была ли она отправлена ​​на действующий веб-сайт, возможно ли это? Где я могу найти документацию по этому вопросу?

1 Ответ

0 голосов
/ 10 октября 2019

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...