【问题标题】:Django NoArgsCommand gives NameError: name ' ' is not definedDjango NoArgsCommand 给出 NameError: name ' ' is not defined
【发布时间】:2012-05-22 14:26:42
【问题描述】:

我正在尝试创建一个自定义命令以在我的 celery crontabs 上运行,该命令从我的数据库中提取数据,创建一个列表,然后将该信息作为列表转储到 redis 中。该列表随后将被其他工作人员使用。

但是,我收到了一个 NameError,尽管阅读了相关的堆栈和 Google 帖子,但我仍然无法解决。

我的代码如下:

from django.core.management.base import NoArgsCommand, CommandError
from detail.models import SD
import redis

class Command(NoArgsCommand):

    help = 'Gathers the symbols from the database and generates a list for crontabs, saving to redis.'

    def handle_noargs(self, **options):

        all = SD.objects.all()

        data = []

        for info in all:
            data.append(info.symb)  

        r = redis.Redis()

        try:
            r.delete('allsymbols')
        except:
            pass

        for xyz in data: **<---- the NameError refers to this line**
            r.rpush('allsymbols', xyz)

追溯

File "C:\.....command.py", line 5, in <module>
class Command(NoArgsCommand):
File "C:\.....command.py", line 26, in Command
for xyz in data:

NameError: 名称“数据”未定义

【问题讨论】:

  • 从您的帖子来源看来,您有混合制表符和空格。
  • @jpic - 这可能是我将其转换为代码块的时候。我不认为这是导致错误的原因。
  • @jpic - 实际上是一秒。那可能正在这样做。会确认的。
  • @jpic 是的,它成功了!这很奇怪 - 在空格导致错误之前我从未遇到过这种情况。

标签: python django redis crontab django-celery


【解决方案1】:

脚本包含混合制表符和空格。

根据pep8,您应该只使用空格,但您可以选择,只要您在所有脚本中使用相同的空格。

【讨论】:

    猜你喜欢
    • 2022-12-02
    • 2013-04-09
    • 1970-01-01
    • 2016-12-06
    • 2020-11-07
    • 2017-01-09
    • 2017-06-14
    • 2023-03-11
    相关资源
    最近更新 更多