Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 1, 2018 11:27:06

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

urls в django 2

Здравствуйте,

Начал писать сайт на 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.
Кто - нибудь сталкивался?

Отредактировано dbalor (Сен. 1, 2018 11:28:05)

Офлайн

#2 Сен. 1, 2018 23:50:58

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Офлайн

#3 Сен. 2, 2018 01:40:31

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

urls в django 2

Да, отсюда.

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

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

path('auto/',path/urls)

Все по прежнему вылетает эта ошибка.
Ребят кто сталкивался?

Офлайн

#4 Сен. 2, 2018 12:01:13

MEOW
Зарегистрирован: 2017-06-07
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

urls в django 2

Чутка не так написано. Должно быть два файла urls. Один в корне проекта, а другой в папке проекта. У тебя сейчас не работает первый файл. Вместо views попробуй написать так

 path('auto/', include('auro.urls'))
Include - отрезает запрос до места auto и идёт в следующую папку urls.py которая находится уже в папке проекта (у тебя эта папка называется auto, так?). В следующем файле urls пропиши
 path('', views.auto, name='auto')
И только тогда уже запрос пойдет в файл views.py где выполнит твою функцию

Офлайн

#5 Сен. 2, 2018 15:00:11

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

urls в django 2

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'),

Отредактировано dbalor (Сен. 2, 2018 15:02:41)

Офлайн

#6 Сен. 2, 2018 16:35:22

MEOW
Зарегистрирован: 2017-06-07
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

urls в django 2

А что у тебя в views.py находится?

Офлайн

#7 Сен. 2, 2018 17:06:43

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

urls в django 2

 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 ""

Отредактировано dbalor (Сен. 2, 2018 17:07:25)

Офлайн

#8 Сен. 2, 2018 19:01:46

MEOW
Зарегистрирован: 2017-06-07
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

urls в django 2

Функция у тебя называется index, а вызываешь ты функцию auto. либо ты напиши вместо views.auto - views.index, либо функцию index переименую в auto

Офлайн

#9 Сен. 3, 2018 12:50:08

Vladimirv
Зарегистрирован: 2013-03-22
Сообщения: 108
Репутация: +  7  -
Профиль   Отправить e-mail  

urls в django 2

 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 и выложить свой проект.

Отредактировано Vladimirv (Сен. 3, 2018 12:58:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version