Django - URL-адреса приложений не работают должным образом - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь включить URL моего приложения в URL моего проекта, как указано ниже, но, похоже, есть проблема, пожалуйста, помогите мне разобраться в чем проблема.Мой проект называется trydjango, и это urls.py файл в нем

urlpatterns = [
    path('teacher/', include('teacher.urls')),
    path('admin/', admin.site.urls),
    path('', homeView, name='home'),
]

, и это teacher.urls file

from django.urls import path
from .views import addTeacherView, listTeacherView, teacherIndexView, deleteTeacherView, editTeacherView

app_name = "teacher"
urlpatterns = [
    path('addTeacher/', addTeacherView, name='add-teacher'),
    path('listTeacher/', listTeacherView, name='list-teacher'),
    path('teacherIndex/<int:my_id>/', teacherIndexView, name='teacher-index'),
    path('deleteTeacher/<int:my_id>/',
         deleteTeacherView, name='delete-teacher-view'),
    path('editTeacher/<int:my_id>/', editTeacherView, name='edit-teacher'),
]

, а в models.py я включил имя приложения вОбратный метод

class Teacher(models.Model):
    firstName = models.CharField(max_length=72)
    email = models.EmailField()
    salary = models.DecimalField(max_digits=100000, decimal_places=2)

    def get_absolute_url(self):
        return reverse('teacher:edit-teacher', kwargs={'my_id': self.id})

Пожалуйста, помогите мне найти проблему. Заранее спасибо!

edit: ошибка здесь, моя репутация ниже 10, это не позволяет мне добавлять изображения сюда!но вот копия ошибок, которые он показывает

NoReverseMatch at /
Reverse for 'add-teacher' not found. 'add-teacher' is not a valid view function or pattern name.
Request Method: GET
Request URL:    http://localhost:8000/
Django Version: 2.1.7
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'add-teacher' not found. 'add-teacher' is not a valid view function or pattern name.
Exception Location: C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 622
Python Executable:  C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe
Python Version: 3.7.2
Python Path:    
['C:\\Users\\Administrator\\Desktop\\123\\src',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\lib',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37',
 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python37\\site-packages',
 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages']
Server time:    Fri, 22 Mar 2019 20:29:59 +0000
Error during template rendering
In template C:\Users\Administrator\Desktop\123\src\teacher\templates\teacher\base.html, error at line 19

Reverse for 'add-teacher' not found. 'add-teacher' is not a valid view function or pattern name.
9       <title>Document</title>
10      <link rel="stylesheet" href="{% static 'style.css' %}">
11      <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
12  
13  </head>
14  
15  <body>
16      <nav>
17          <a class="logo" href="{% url 'home' %}">LOGO</a>
18          <div class="navbar">
19              <a href="{% url 'add-teacher' %}">Add Teacher</a>
20              <a href="{% url 'list-teacher' %}">List Teacher</a>
21          </div>

Ответы [ 2 ]

1 голос
/ 22 марта 2019

В ваших шаблонах вы используете адреса, подобные этому:

<a href="{% url 'add-teacher' %}">Add Teacher</a>

Вы должны изменить этот тип адресации на этот (из-за приложения teacher):

<a href="{% url 'teacher:add-teacher' %}">Add Teacher</a>
1 голос
/ 22 марта 2019

Я полагаю, что вам не хватает пространства имен для нескольких ваших URL-вызовов. В вашем шаблоне у вас есть {% url 'add-teacher' %}. Это должно быть {% url 'teacher:add-teacher' %}. Посмотрите и на другие случаи с учителями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...