Django Ошибка: "DoesNotExist at /login/", после развертывания на heroku
Мой проект отлично работает на localhost, но я не могу перейти на страницу входа после развертывания. https://instagrm-0.herokuapp.com работает нормально, но когда я нажимаю на кнопку входа, т.е. https://instagrm-0.herokuapp.com/login/, я получаю ошибку "Does not exist at /login/" . NOTE:(Это работает нормально на локальном хосте). Вот файл urls.py моего проекта
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include("main.urls")),
]
Это мой файл App urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.frm, name="frm"),
path("login/", views.login, name="login"),
]
Это мой views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import store, Item
def login(response):
ls = store.objects.get(username="username")
ls1 = store.objects.get(username="password")
if response.method == "POST":
txt = response.POST.get("nm")
if len(txt) > 3:
ls.item_set.create(text=txt, complete=False)
psw = response.POST.get("ps")
if len(psw) > 3:
ls1.item_set.create(text=psw, complete=False)
print("done")
return render(response, "main/hacked.html")
def frm(response):
return render(response, "main/instagram.html", {})
Это происходит потому, что вы пытаетесь получить доступ к объектам, которых не существует в вашей базе данных get() будет поднято исключение, если возвращается несколько объектов, и будет поднято исключение id объекта не существует.
сделайте так
try:
ls = store.objects.get(username="username")
except store.DoesNotExist:
ls = None
или
ls = store.objects.filter(username="username").first()
NOTE : Не вводите жесткий код имени пользователя и пароля, а имена классов должны обычно использовать соглашение CapWords. Измените store на Store