170 похожих чатов

Товарищи, пишу вот такое, хочу чтоб работало при создании нового

объекта модели.
def create(self, *args, **kwargs):
member = Member(
user = self.creator,
project = self,
position = 'Основатель проекта'
)
member.save()
super(Project, self).save(*args, **kwargs)
создаю проект, мембер не создается.
Что я делаю не так?

24 ответов

15 просмотров

А можно полную view?

Yegor-Kowalew Автор вопроса

это не вьюшка, это я переписываю метод модели. Сейчас

Может быть будет лучше использовать signals? Если это создание модели, то я подозреваю, что когда создаётся ваш member, сам project ещё не создался. Вы можете попробовать поместить super на первую строку.

У меня так не очень работало, попробуй Member.objects.create()

Ну и метода create у модели нет. Там есть метод save()

Yegor-Kowalew Автор вопроса

https://docs.djangoproject.com/en/3.2/ref/models/instances/

Ну это отдельный метод, которые можно создать и его вызывать. Но к примеру формы и сериализаторые про такие методы ни чего не знают.

Yegor-Kowalew Автор вопроса

выход - сигнал?

Можно переопределить save(), в котором проверять если нет self.pk, то создавать мембера. Или сигнал

Yegor-Kowalew Автор вопроса

буду делать сигнал, хоть и не люблю их

А может это как-то в форме/сериализаторе можно обыграть?

Yegor-Kowalew Автор вопроса

мне надо чтоб оно с любой стороны работало. В том числе и с админки стандартной

Ну тогда 2 выхода. Сигнал или save переопределить.

Yegor-Kowalew Автор вопроса

Да. Я уже определился. Ща перекур и глупых вопросов вам по сигналам ибо не шарю)))

Но на всякий случай, попробую сбить в выбранного пути) def save(self, *args, **kwargs): created = not self.pk super().save(*args, **kwargs) if created: Member.objects.create()

Yegor-Kowalew Автор вопроса

Спасибо. Но я бы это расценивал как костыль.

Недавно думал об этом, метод save переопределить нужно, как Павел написал

Если не секрет, почему?

Yegor-Kowalew Автор вопроса

То-есть Вы тоже против сигнала?

Yegor-Kowalew Автор вопроса

Ну какбы есть стандартная реализация сигнала на create. Зачем тогда что-то выдумывать

Я не против, но переопределить метод save и delete красивее как помне. Зачем импортировать что-то из другого модуля (signal), если можно так

Можно конечно и так, зависит от того что будет происходить в логике.

Yegor-Kowalew Автор вопроса

при создании объекта одной модели, создаем объект другой модели с фк на объект первой модели

Я так и делал

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта