ImportError: невозможно импортировать имя «формы» из «базового приложения» - PullRequest
0 голосов
/ 06 апреля 2020

form.py:

from django import forms

class FormName(forms.Form):
    name=forms.CharField()
    email=forms.EmailField()
    text=forms.CharField(widget=forms.Textarea)

views.py:

from django.shortcuts import render
from .forms import forms

def index(request):
    return render(request,'basicapp/index.html')

def form_page(request):
    Form = forms.FormName()
    return render(request,'basicapp/form_page.html',{'form':Form})

Я не знаю, что здесь не так! когда я запускаю сервер, он выдает ошибку, говоря ImportError : cannot import name 'forms' from 'basicapp'.

Ответы [ 2 ]

2 голосов
/ 06 апреля 2020

Прежде всего, похоже, что вы назвали свой файл форм form.py и пытаетесь получить доступ к модулю форм. Переименуйте файл form.py в forms.py.

Во-вторых, вы пытаетесь импортировать forms из файла форм. На самом деле это ссылка на forms, которую вы импортировали через from django import forms. У вас есть несколько вариантов здесь. В вашем файле просмотра вы можете либо import .forms, либо from .forms import FormName, я предпочитаю последнее.

Итак, после того, как вы переименуете form.py в forms.py, я бы переписал views.py, чтобы он выглядел так:

from django.shortcuts import render
from .forms import FormName

def index(request):
    return render(request,'basicapp/index.html')

def form_page(request):
    this_form = FormName()
    return render(request,'basicapp/form_page.html',{'form':this_form})
0 голосов
/ 06 апреля 2020

В вашем view.py

есть проблема: замените строку ниже

from .forms import forms

на

from <your app name>.forms import forms

Вы получаете эту ошибку, поскольку django пытаясь найти его в папке root, где существует файл manage.py.

...