- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 django 框架工作做一些项目我是初学者,刚刚使用过django signals 但我很困惑为什么我们需要在 ready 函数中的 app.py 中导入信号文件
下面的代码使问题更清楚,我被困在这个问题上,所以需要帮助
信号.py
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import Profile
@receiver(post_save,sender=User)
def create_profile(sender,instance,created,**kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save,sender=User)
def save_profile(sender,instance,**kwargs):
instance.profile.save()
应用.py
from django.apps import AppConfig
class UsersConfig(AppConfig):
name = 'users'
def ready(self):
import users.signals
#i have no idea what this function does
这里的ready函数有什么用,为什么要在这里导入信号???
如果我在顶部导入信号而不使用就绪函数怎么办?
最佳答案
what is the need of
ready
function here and why is it importing signals here?
ready()
method [Django-doc]在注册表完全加载后调用。因此,您可以在服务器开始处理请求之前执行一些您想要执行的操作。这是在文档中指定的:
Subclasses can override this method to perform initialization tasks such as registering signals. It is called as soon as the registry is fully populated.
这里导入信号的原因是如果你不显式导入信号,Django 将不会导入信号。如果未导入 signals
模块,则信号不会在相应的模型上注册,因此如果您更改 User
模型,信号将不会被触发。
通常一个人加一个#noqa
注释导入行,以防止像 pylint
这样的 linter 工具针对您不使用的导入发出警告。
from django.apps import AppConfig
class UsersConfig(AppConfig):
name = 'users'
def ready(self):
import users.signals <b># noqa</b>
关于django - 我对 app.py 中使用的就绪函数感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58362534/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!