【发布时间】:2018-08-10 13:15:21
【问题描述】:
已解决:
try-catch 是在该过程的后续步骤中找到一些东西
我将这些步骤移到 try-catch 之外并解决了这些问题
我正在尝试构建一个可以针对单个模型对象运行的自定义 Django 命令
当我签入 shell 时,我看到对象很好
>>> Obj.objects.get(id=1)
<Obj: the object I'm looking for>
我的自定义命令如下所示:
# app/management/update.py
class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument('--id')
def handle(self, *args, **options):
if options['id']:
try:
obj = Obj.objects.get(id=options['id'])
# do things
except:
raise CommandError('no object with ID: "%s"' % options['id'])
else:
# do other things
运行这个我得到错误信息
>>> python manage.py update --id 1
CommandError: no object with ID: "1"
任何帮助表示赞赏。
谢谢
【问题讨论】:
-
例如你有
ID=1但在命令ID=2? -
记录确切的异常。用你的
except(永远不要那样做!),你模糊了实际发生的事情,只是假设可能是什么原因。
标签: python django django-models