#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. Я пытаюсь создать проект, в котором пользователь может динамически создавать приложение, а также файлы внутри него.