相关疑难解决方法(0)

保持我的signals.py文件在Django项目中的正确位置

基于我正在阅读的Django文档,似乎signals.py在app文件夹中是一个很好的开始,但我面临的问题是,当我创建信号时pre_save,我尝试从模型中导入类,它与import在我的模型中.

# models.py

from django.contrib.auth.models import User
from django.db import models
from django.utils.translation import gettext as _
from signals import *

class Comm_Queue(CommunicatorAbstract):
    queue_statuses = (
        ('P', _('Pending')),
        ('S', _('Sent')),
        ('E', _('Error')),
        ('R', _('Rejected')),
    )
    status          = models.CharField(max_length=10, db_index=True, default='P')
    is_html         = models.BooleanField(default=False)
    language        = models.CharField(max_length=6, choices=settings.LANGUAGES)
    sender_email    = models.EmailField()
    recipient_email = models.EmailField()
    subject         = models.CharField(max_length=100)
    content         = models.TextField()
Run Code Online (Sandbox Code Playgroud)
# signals.py

from django.conf import settings
from django.db.models.signals import pre_save
from django.dispatch import receiver
from …
Run Code Online (Sandbox Code Playgroud)

django django-signals

76
推荐指数
6
解决办法
3万
查看次数

Django 1.2:如何将pre_save信号连接到类方法

我试图在我的django 1.2项目中的某些类中定义"before_save"方法.我在将信号连接到models.py中的类方法时遇到问题.

class MyClass(models.Model):
    ....
    def before_save(self, sender, instance, *args, **kwargs):
        self.test_field = "It worked"
Run Code Online (Sandbox Code Playgroud)

我已经尝试将pre_save.connect(before_save,sender ='self')放在'MyClass'本身,但没有任何反应.

我也尝试将它放在models.py文件的底部:

pre_save.connect(MyClass.before_save, sender=MyClass)
Run Code Online (Sandbox Code Playgroud)

在这里读到了将信号连接到类方法,但无法弄清楚代码.

谁知道我做错了什么?

python django signals django-1.2 python-2.7

7
推荐指数
2
解决办法
3216
查看次数

在哪里放django信号接收器代码?

嗨,我正在定义自己的信号和接收器.我只是想知道我应该把代码放在哪里.它位于models.py或views.py中.请帮忙

django

7
推荐指数
1
解决办法
1058
查看次数

一旦Celery任务完成,就更新Django模型对象

一旦芹菜任务完成,我想更新我的模型对象.我现在不知道如何去做这件事.

这是文件的布局

models.py

from photos.tasks import photo_download

class Photo(models.Model):
    ....fields....


@receiver(post_save)
def download_photo_callback(sender, **kwargs):
    photo = kwargs["instance"]
    result = photo_download.delay(photo.uid)
Run Code Online (Sandbox Code Playgroud)

tasks.py

from photo.models import Photo

@task()
def photo_download(photo_uid, callback=None):
    ...do stuff...
    photo.status = 'D'
    photo.save()
Run Code Online (Sandbox Code Playgroud)

django celery django-celery

6
推荐指数
1
解决办法
5129
查看次数

Django信号不起作用

我的models.py:>

class Aval(models.Model):
    cliente = models.ForeignKey(Cliente)
    salao = models.ForeignKey(Salao)
    rate = models.IntegerField(choices=RATE, default=5)
    criacao = models.DateTimeField(blank=True, null=True, auto_now=True)
    comentario = models.TextField(max_length=400, blank=True, null=True, default=None)
    aprovado = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)

我的signals.py:>

@receiver(post_save, sender=Aval)
def new_rate(sender, instance, created, **kwargs):
    aval = instance

    print("Aval is saved.")
Run Code Online (Sandbox Code Playgroud)

我正在为Aval模型测试信号post_save,当我保存一些对象Aval时,它不打印"Aval被保存".我做错了什么?

python django django-signals

6
推荐指数
1
解决办法
1808
查看次数

在Django 1.7中启动时执行代码

似乎Django允许在启动时执行代码 - 当应用程序启动时,但是,它不清楚我应该把代码放在哪里.那么如何在Django 1.7中启动时执行代码呢?

python django

6
推荐指数
1
解决办法
4581
查看次数

在哪里放django信号接收器代码,将它们传播到多个文件?

我把我的信号接收器代码放在相应的模型文件中.

但是,信号接收器不断增长,我想将它们分成多个文件.

我还没有看到有关放置信号接收器代码的位置的讨论.

(让我怀疑我不应该制造许多信号接收器吗?)

django signals

5
推荐指数
1
解决办法
2417
查看次数

调试django信号的问题

我在连接django中的信号时遇到问题.我一直在关注http://dmitko.ru/?p=546上提供的教程,并尝试扩展用户注册.

我已经正确设置了django-registration.它工作正常.出于调试目的,我将以下代码放入我的urls.py中:

from registration.signals import user_registered

def log_user_created(sender, user, request, ** kwargs):
  logger.debug("got USER_REGISTERED signal")

if settings.DEBUG:
  logger.debug("registering debug signal listeners")
  user_registered.connect(log_user_created)
else:
  logger.debug("debuging signals not enabled")    
Run Code Online (Sandbox Code Playgroud)

但是永远不会调用log_user_created函数.

我的问题是:如何调试我的应用程序以查看吞下user_registered信号的位置?

注意:我已经检查过我的django-registration版本是否正常工作.我已将我的版本改为上述博客示例应用程序中的版本.它没有改变观察到的行为.

django django-signals django-registration

3
推荐指数
1
解决办法
2928
查看次数