在django.contrib.auth.models.py中,有一个函数,其下面有一行,从20开始
def update_last_login(sender, user, **kwargs):
"""
A signal receiver which updates the last_login date for
the user logging in.
"""
user.last_login = timezone.now()
user.save()
user_logged_in.connect(update_last_login)
这最后一行对我来说很奇怪,因为它在定义之后立即调用了一个函数。我从来没有考虑过调用一个类似于脚本的models.py文件,我认为django模型只不过是定义......这个user_logged_in行什么时候被调用?在任何模型文件的导入,或什么?如果它只在用户登录时被调用,那么django如何知道只调用它呢?感谢
答案 0 :(得分:3)
不,那不是调用update_last_login
函数;它将它连接到一个信号。
所有Python文件都是可执行的;偶数函数和类定义是可执行代码。
首先导入模块级别的所有内容 - 包括函数定义