Что происходит при создании объекта в админке 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.Надеюсь, я хорошо объяснил.
- When you create instance of a model, you use the init function.
- When you want to save the data into the database you use the save
function. - The "str" function is being called by the admin site.