Как указать аргумент клиента в командах управления django?
У меня есть функция в командах управления django, которая должна принимать url в качестве аргумента
class Command(BaseCommand):
help = u'Enter the url'
def add_arguments(self, parser):
parser.add_argument('url',type=str,help=u'Enter the url')
def handle(self,*args,**kwargs):
url = kwargs['url']
main(url)
не имеет значения, что это за функция, все в ней работает, когда команда вызывается через терминал
но у меня вопрос, как я могу реализовать это в клиентской части? Я хочу, чтобы пользователь вводил url и он передавался в функцию.
Какие способы передачи пользовательских аргументов командам управления django?
решение оказалось очень простым
вы просто создаете форму, не связанную с моделью, создаете поля, которые вам нужны в качестве аргумента в вашей функции, а затем передаете данные из формы вашей команде
def index(request):
if request.method == 'POST':
form = AddFilmUrl(request.POST)
if form.is_valid():
url = form.cleaned_data.get('url')
management.call_command('parse',url)
else:
form = AddFilmUrl()
return render(request, 'addfilm.html', {'form':form,})