Как мне написать проблемный код, чтобы избежать ошибки? - PullRequest
0 голосов
/ 17 апреля 2019

Я получаю сообщение об ошибке после ввода кода в поле models.py после определения имени приложения в urls.py

Нет проблем перед определением имени приложения.

Django == 2,2

Python == 3.x

Блог / urls.py

from django.contrib import admin
from django.urls import path, re_path, include
from Home.views import HomeView

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^$', HomeView),
    re_path(r'^Post/', include('Post.urls')),
]

Post / urls.py

from django.urls import path, re_path
from .views import *

AppName = 'Post'

urlpatterns = [
    re_path(r'^Index/$', PostIndex, name='Index'),
    re_path(r'^(?P<id>\d+)/$', PostDetail, name='Detail'),
    re_path(r'^Create/$', PostCreate, name='Create'),
    re_path(r'^Update/$', PostUpdate, name='Update'),
    re_path(r'^Delete/$', PostDelete, name='Delete'),
]

models.py

from django.db import models
from django.urls import reverse

# Create your models here.

    class Post(models.Model):
        Title = models.CharField(max_length=120)
        Content = models.TextField()
        PublishingDate = models.DateTimeField()

        def __str__(self):
            return self.Title

        def get_absolute_url(self):
            return reverse('Post:Detail', kwargs={'id':self.id})

Index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    {% for Post in Posts %}
        {{ Post.id }}<br>
        <a href="{{ Post.get_absolute_url }}">{{ Post.Title }}</a><br>
        {{ Post.Content }}<br>
        {{ Post.PublishingDate }}<br>
    {% endfor %}

</body>
</html>

Я не получаю сообщение об ошибкебез определения имени приложения в поле models.py.Произошла ошибка при редактировании кода в поле models.py.

    def get_absolute_url(self):

seamless code => return reverse('Detail', kwargs={'id':self.id})
problematic code => return reverse('Post:Detail', kwargs={'id':self.id})

Как написать проблемный код, чтобы избежать ошибки?

1 Ответ

0 голосов
/ 17 апреля 2019

Вам необходимо добавить пространство имен к своим URL-адресам:

from django.contrib import admin
from django.urls import path, re_path, include
from Home.views import HomeView

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^$', HomeView),
    re_path(r'^Post/', include('Post.urls', namespace='Post')),
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...