Как я могу импортировать переменные из views.py в Django? - PullRequest
0 голосов
/ 10 января 2019

Я - новичок в Django и относительно новичок в Python, хотя меня устраивает основной синтаксис языка. Я сделал пост-форму в Django, которая берет мой ввод и назначает его переменной в моем файле views.py после фильтрации, например:

def index(request):
    if request.method == 'POST':
        form = NameForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']

    form = NameForm()    
    return render(request, './index.html', {'form': form})

'name' - это моя переменная, которая хранится в моей форме NameForm (), которая была создана и импортирована из отдельного файла формы. Моя проблема начинается, когда мне нужно импортировать переменную name в другой файл .py. Первый и очевидный способ - импортировать представления в другой мой файл, но это не работает.

По какой-то причине я не знаю, будучи новичком в Django, импорт файла views.py работает отлично, если только вам не нужно запускать этот отдельный файл .py, а затем выдает ошибку:

"ImportError: невозможно импортировать name 'views' "
Очевидным ответом на этот вопрос будет вопрос, ссылаюсь ли я на неправильный каталог, а я знаю, что это не так, поскольку файл urls.py работает. Я также знаю, что в моем файле views нет ничего плохого, поскольку он правильно направляет мои URL.

Так что я не знаю, куда идти отсюда. Мое временное решение состояло в том, чтобы перенести весь мой другой файл, использующий переменную name, в мой файл views. Он работает как надо, но не будет работать, когда я начну расширять свой сайт.

Я ценю любую помощь заранее. Я могу добавить дополнительную помощь, если нужно, просто дайте мне знать. Спасибо!

1 Ответ

0 голосов
/ 10 января 2019

После 36 часов с этой проблемой я придумал простое решение. Вместо того, чтобы пытаться импортировать views.py в другой мой файл, я просто импортировал этот файл в views.py, и когда отправляется запрос на публикацию, он вызывает мою функцию для удаленного файла с именем в качестве параметра. Я не уверен, что это лучшее решение, но оно намного элегантнее предыдущего. Мне просто нужен был хороший ночной отдых, чтобы подумать об этом.

...