Опять я сталкиваюсь либо с магией джанги, либо со своей тупостью.
Предположим есть две модели, исходная:
class КакаяТоМодель(models.Model):
field = CharField()
промежуточная:
class Промежуточная(models.Model):
поле_от = ForeignKey(КакаяТоМодель, related_name="менеджер")
поле_до = ForeignKey(КакаяТоМодель)
Если нужно создать новую запись, можно использовать:
модель = КакаяТоМодель()
модель2 = КакаяТоМодель()
модель.менеджер.create(поле_до=модель2)
Вот метод create():
def create(self, **kwargs):
"""
Creates a new object with the given kwargs, saving it to the database
and returning the created object.
"""
obj = self.model(**kwargs)
self._for_write = True
obj.save(force_insert=True, using=self.db)
return obj
Хочу переопределить этот метод, чтобы он перед созданием записи, выполнял некоторые дополнительные вещи, а не могу передать в него информацию о вызывающей модели.
Дак вот каким, блин образом, он получает информацию о первой модели? Я не вижу никаких предпосылок, так как таких аргументов в вызове функции не передаю, но тем не менее они там есть. Откуда они там берутся?
Updated 21 June 2016, 9:59 by Michael.