我有一个 working django-admin自定义命令,用于使用新信息填充我的数据库 . 一切都行得通 .
但是,我现在已经稍微更改了我的模型和函数以接受两个参数作为元组 - 名字 and 姓氏,而不仅仅是"name" .
以下代码 - 工作 . 使用“manage.py xyz name1 name2 name3 ...等运行(不同args之间的空格)
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)
Is it possible to pass on two arguments from the django-admin custom command where the second argument is optional --> i.e. (first, last=None)?
伪代码低于我想要运行的...“manage.py xyz(first1,last1)(first2,last2)< - 或者这个的一些变化
我已经更改了DEF函数以适当地接受它作为一个独立的函数 . 我只是不确定如何才能让django-admin命令正常工作 .
1 回答
这完全有可能,虽然
django.core.management
没有提供这样做的具体工具 . 您可以解析通过args
关键字参数传递的参数 . 你必须提出这样做的语法(在命令的help
属性中定义语法可能是个好主意) .假设语法是
firstname.lastname
,或者在省略姓氏的情况下只是firstname
,您可以执行以下操作:命令的用户可以传递参数,如下所示: