Ошибка команды в django при использовании call_command(startapp, имя приложения)

#django #apache #django-commands

Вопрос:

Я хочу создать приложение Django на основе пользовательского ввода. Вот мой код.

 
def createAppname(name):
    split_name = name.split(" ")
    
    s = "".join(i[0:] for i in split_name)
    return s

def formFields(request):
    if request.method == 'POST':
        app_name =  request.POST.get('app')

        new_name=createAppname(app_name)

        from django.core.management import call_command
        call_command('startapp', new_name)

        return render(request,'forms_new.html')

    return render(request, 'forms_new.html')

 

Код отлично работает, когда я выполняю его в среде разработки.
Но после развертывания на производственном сервере, здесь я использую apache_mod_wsgi, я получаю следующую ошибку.

 

Traceback (most recent call last):
  File "/path/to/env/lib/python3.6/site-packages/django/core/management/templates.py", line 70, in handle
    os.makedirs(top_dir)
  File "/path/to/env/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)

During handling of the above exception ([Errno 13] Permission denied: '/thisisnewappfromServer'), another exception occurred:
  File "path/to/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/path/to/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/rohit/Documents/Web_app/project/new_models/views.py", line 70, in formFields
    call_command('startapp', new_name)
  File "/path/to/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 168, in call_command
    return command.execute(*args, **defaults)
  File "/path/to/env/lib/python3.6/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/path/to/env/lib/python3.6/site-packages/django/core/management/commands/startapp.py", line 14, in handle
    super().handle('app', app_name, target, **options)
  File "/path/to/env/lib/python3.6/site-packages/django/core/management/templates.py", line 74, in handle
    raise CommandError(e)

Exception Type: CommandError at /models/details/
Exception Value: [Errno 13] Permission denied: '/thisisnewappfromServer'
 

Пожалуйста, помогите мне здесь. Спасибо.

Комментарии:

1. Зачем это делать? Какой код будет тогда у этих приложений? Как правило, лучше, чтобы ваш код обрабатывал все сам, а не динамически создавал больше кода для обработки материалов.

2. Я пытаюсь создать проект, в котором пользователь может динамически создавать приложение, а также файлы внутри него.