Найти - Пользователи
Полная версия: urls в django 2
Начало » Django » urls в django 2
1
dbalor
Здравствуйте,

Начал писать сайт на django 2.1 , и уперся в urlы:

Делаю все как в документации:
 ...
from django.contrib import admin
from django.urls import path,include,re_path
from page import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('auto/',views.auto),# ошибка 404, но представление есть
]
...
По сути работает только admin.
Кто - нибудь сталкивался?
Romissevd
Отсюда черпаешь информацию?!
dbalor
Да, отсюда.

Но ничего не помогает.
пробовал re_path

пробовал так:

path('auto/',path/urls)

Все по прежнему вылетает эта ошибка.
Ребят кто сталкивался?
MEOW
Чутка не так написано. Должно быть два файла urls. Один в корне проекта, а другой в папке проекта. У тебя сейчас не работает первый файл. Вместо views попробуй написать так
 path('auto/', include('auro.urls'))
Include - отрезает запрос до места auto и идёт в следующую папку urls.py которая находится уже в папке проекта (у тебя эта папка называется auto, так?). В следующем файле urls пропиши
 path('', views.auto, name='auto')
И только тогда уже запрос пойдет в файл views.py где выполнит твою функцию
dbalor
MEOW,
теперь по адресу 127.0.0.1:8000 выдает ошибку 404
по адресу 127.0.0.1:8000/auto выдает ошибку:
AttributeError at /auto / ‘str’ object has no attribute ‘get’
urls проектов
     path('admin/', admin.site.urls),
    path('auto/',auto.urls),
   #path('auto/',include('auto.urls')),  #Пробовал и так - такая же ошибка

urls auto
 path('', views.auto, name='auto'),
MEOW
А что у тебя в views.py находится?
dbalor
 from django.shortcuts import render
from django.http import HttpResponse
from auto.models import Category, Auto
# Create your views here.
def index(request, cat_id):
   if cat_id==None:
      cat=Category.objects.first()
   else:
      cat=Category.objects.get(pk=cat_id)
   auto=Auto.objects.filter(category=cat)
   s="Категория: "+cat.name+"<br><br>"
   for good in goods:
      s=s+"("+str(auto.pk)+")"+auto.name+"<br>"
   return HttpResponse(s)
def auto(request):
   return ""
MEOW
Функция у тебя называется index, а вызываешь ты функцию auto. либо ты напиши вместо views.auto - views.index, либо функцию index переименую в auto
Vladimirv
 from django.contrib import admin
from django.urls import path
from page import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('auto/',views.auto),
]
Это полностью рабочий код.

 def auto(request):
   return ""
Это работать не будет.

MEOW
Должно быть два файла urls. Один в корне проекта, а другой в папке проекта. У тебя сейчас не работает первый файл.
Файла может быть два, но это не обязательно(то есть не “должно”). Но рекомендуется делать для приложения свой urls. А не работает из-за вьюхи.

MEOW
у тебя эта папка называется auto, так?
Директория(приложение) должно называться page. auto/ - это url, view.auto - это вьюха в приложении page.

Чтобы всё это хозяйство заработало нужно исправить вьюху auto до приличного вида.

Для того чтобы не приходилось гадать, рекомендую освоить git, зарегистрироваться на github.com и выложить свой проект.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB