Что происходит при создании объекта в админке Django?

Я новичок в Django. Когда мы изучали Python, нас учили, что при создании объекта инициализируется функция init и все передаваемые переменные сохраняются с помощью ключевого слова self. Например:

class Movie:
    def __init__(self,name,caption,budget):
        self.name =  name
        self.caption = caption
        self.budget = budget

obj1 = Movie('Taken',"Fight movie",250)
obj2 = Movie('Wanted','Comedy movie',300)
print(obj1.name)
print(obj2.name)

В данном примере, когда я нажал на кнопку run, два объекта инициализируются и сохраняются. Следовательно, при печати печатаются оба названия фильмов.

Теперь, когда я читаю документацию по Django, там говорится, что когда мы создаем объект модели в админке Django, она вызывает функцию save для сохранения экземпляра. До сих пор я полагал, что функция сохранения будет вызываться так же, как и в обычном Python.

Модель Django выглядит следующим образом:

class Employee(models.Model):
    name=models.Charfield()
    dept=models.Charfield()
    
    def __str__(self):
        return self.name

Кроме того, здесь я не вижу явно определенной функции init. Но когда я нажимаю ctrl + click на Model, я вижу ряд определенных функций, и там определена функция init, а также функция save. Теперь я хочу знать, какая функция вызывается, когда мы сохраняем любой объект из django admin. Также, если мы создаем объект из post api вызова, а не из django admin, вызывается та же функция?

Также я не вижу, откуда вызывается функция str, но она работает в django-admin, что имя используется для представления объекта Employee.Надеюсь, я хорошо объяснил.

  1. When you create instance of a model, you use the init function.
  2. When you want to save the data into the database you use the save
    function.
  3. The "str" function is being called by the admin site.
Вернуться на верх