django-click icon indicating copy to clipboard operation
django-click copied to clipboard

call_command replacement

Open D3f0 opened this issue 4 years ago • 1 comments

I'm trying to call a djclick based management command using the traditional Django API, django.core.management.call_command and I'm getting this traceback:

Traceback (most recent call last):
  File "_log.py", line 34, in <module>
    call_command('sync_models')
  File "/home/user/.cache/pypoetry/virtualenvs/ht-ZBbfQ9hA-py3.8/lib/python3.8/site-packages/django/core/management/__init__.py", line 135, in call_command
    for group in parser._mutually_exclusive_groups
AttributeError: 'ArgumentParserAdapter' object has no attribute '_mutually_exclusive_groups'

I could do from myproject.myapp.management.commands.my_command import command although the command I'm using is the grouping feature.

What would be the advised methodology to run the command in a programmatic fashion?

D3f0 avatar Sep 09 '20 19:09 D3f0

I had the issue #28. I solved it by using subprocess.Popen.

import subprocess
(stdout, stderr) = subprocess.Popen(["python", "manage.py", "yourcommand"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
# assert something with stdout and stderr

erayerdin avatar Jul 13 '21 11:07 erayerdin