我有一个workingdjango-admin 自定义命令,我用它来填充新信息的数据库。再说一次,一切正常。
但是,我现在稍微更改了我的模型和函数,以接受两个参数作为元组 - 名字and姓氏,而不仅仅是“名字”。
下面的先前代码 - 工作。使用“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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)