gpt4 book ai didi

python - django-admin 自定义命令中的两个参数

转载 作者:太空狗 更新时间:2023-10-29 20:48:10 26 4
gpt4 key购买 nike

我有一个工作 django-admin 自定义命令,我用它来用新信息填充我的数据库。同样,一切正常。

但是,我现在稍微更改了我的模型和函数,以接受两个参数作为元组 - 名字 姓氏,而不仅仅是“名称”。

下面的先前代码 - 工作。使用“manage.py xyz name1 name2 name3 ...等运行(不同参数之间的空格)

from django.core.management.base import BaseCommand, CommandError
from detail.models import ABC
from detail.parser import DEF

class Command(BaseCommand):
args = '<name...>'
help = 'Populates the ABC class database'

def handle(self, *args, **options):
for symbol in args:

try:
info = DEF(name)

是否可以从 django-admin 自定义命令传递两个参数,其中第二个参数是可选的 --> 即(第一个,最后一个=无)?

下面是我想使用的伪代码...“manage.py xyz (first1, last1) (first2, last2) <-- 或者这个的一些变体

我已经更改了函数 DEF 以适本地接受它作为一个独立的函数。我只是不确定现在如何让 django-admin 命令正常工作。

最佳答案

这完全有可能,尽管 django.core.management 没有提供特定的工具来这样做。您可以解析通过 args 关键字参数传递的参数。您必须想出这样做的语法(在命令的 help 属性中定义语法可能是个好主意)。

假设语法是firstname.lastname,或者只是firstname(在姓氏被省略的情况下),你可以这样做:

def handle(self, *args, **options):
for arg in args:
try:
first_name, last_name = arg.split('.')
except ValueError:
first_name, last_name = arg, None

info = DEF(first_name, last_name)

命令的用户可以像这样传递参数:

$ python manage.py yourcommand -v=3 john.doe bill patrick.bateman

关于python - django-admin 自定义命令中的两个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568864/

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