gpt4 book ai didi

python - “命令”对象没有属性 'stdout'

转载 作者:行者123 更新时间:2023-12-01 05:51:59 24 4
gpt4 key购买 nike

from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
def handle(self, *args, **options):
......
self.handle_noargs()

def handle_noargs(self, **options):
packages_count = Package.objects.all().count()
Package.objects.all().delete()
print >> self.stdout, u'Deleted %d packages' % packages_count
......

我正在为提供的代码编写测试,但是每当我调用handle_noargs函数时,我都会收到以下错误:

AttributeError: 'Command' object has no attribute 'stdout'

我使用的是 Django 1.3.1。

>>> import django
>>> django.VERSION
(1, 3, 1, 'final', 0)

关于谷歌搜索答案 stdout 是在一些版本之前在 BaseCommand 类中实现的,所以我不知道为什么 django 找不到它。

添加目录(自身):

>>> from webui.packagedb.management.commands.packagedb_clear import Command
>>> dir(Command)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribut
e__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_e
x__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_
_weakref__', 'args', 'can_import_settings', 'create_parser', 'execute', 'get_ver
sion', 'handle', 'handle_noargs', 'help', 'option_list', 'output_transaction', '
print_help', 'requires_model_validation', 'run_from_argv', 'usage', 'validate']

最佳答案

我认为你不能直接调用handle_noargs,BaseCommand类命令有一个execute()方法,它调用handle()并在初始化stdout和stderr之前

因此每次运行命令时,都会调用execute()方法,该方法期望实现handle方法

关于python - “命令”对象没有属性 'stdout',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com