#python #django
Вопрос:
Я работаю с Django, и я всего лишь новичок. Я следую этому руководству, чтобы создать контактную форму. Но у меня есть эта ошибка, когда я хочу перейти по этому URL: http://127.0.0.1:8000/contact/.
У меня есть 3 приложения в моем проекте(Сообщения, Пользователи и контакты).:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Posts',
'Users',
'crispy_forms',
'Contact',
А вот то urls.py
в моем проекте :
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('' , include('Posts.urls')),
path('',include('Contact.urls')),
]
И это есть urls.py
в моем Contact
приложении:
from django.urls import path
from Contact import views
app_name = "Contact"
urlpatterns = [
path('contact/', views.context, name="contact"),
]
И это views.py
в моем приложении для контактов:
from django.shortcuts import render, redirect
from .forms import ContactForm
from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse
def context(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
subject = "Website Inquiry"
body = {
'first_name' : form.cleaned_data['first_name'],
'last_name' : form.cleaned_data['last_name'],
'email' : form.cleaned_data['email_address'],
'message' : form.cleaned_data['message'],
}
message = "n".join(body.values())
try:
send_mail(subject, message,'admin@example.com', ['admin@example.com'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect("Posts:home")
form = ContactForm()
return render(request, "Posts/templates/contact/contact.html", {'form':form})
У меня есть папка шаблонов в приложении «Сообщения», и внутри нее у меня есть 3 папки, в которые я помещаю свои contact.html в папке «Контакты» (одна из трех).
файлы и папки
Это ссылка на мой проект.
Я прочитал около 10 сообщений, в которых говорилось об этой проблеме, но, к сожалению, я не смог ее решить. Я буду благодарен вам за помощь.
Комментарии:
1. 127.0.0.1-это ваш локальный хост. Вы проверили, работает ли ваш сервер из вашего браузера?
2. извините, я не понял. Вы имеете в виду, что я добавил его в свой ALLOWED_HOST или нет? @d6stringer
3. должны ли строки
form = ContactForm()
иreturn render(request, "Posts/templates/contact/contact.html", {'form':form})
вкладки находиться на верхнем уровне?4. Я проверил свой проект, и он работал должным образом. Но это не работает для этого URL-адреса. Может быть, я предполагаю, что это может быть потому что не может найти мой файл contact.html 🤔
5. да, извините. Они функционируют, но из ifs.@Zev
Ответ №1:
Ошибка здесь:
urlpatterns = [
path('admin/', admin.site.urls),
path('' , include('Posts.urls')),
path('',include('Contact.urls')),
]
Второй и третий URL-адреса указывают на один и тот же путь. Измените его на:
urlpatterns = [
path('admin/', admin.site.urls),
path('posts/', include('Posts.urls')),
path('contact/', include('Contact.urls')),
]
А также в urls.py
в Contact
сделайте это:
urlpatterns = [
path('', views.context, name="contact"),
]