Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:Django使用mysite.URL中定义的URLconf尝试了这些URL模式_Django - Fatal编程技术网

错误:Django使用mysite.URL中定义的URLconf尝试了这些URL模式

错误:Django使用mysite.URL中定义的URLconf尝试了这些URL模式,django,Django,我正在做“Django by example”中的“Blog”教程,我发现了一个错误。很好。我做错了什么 错误: 找不到页面(404) 请求方法:获取 请求URL: Django使用mysite.URL中定义的URLconf,按以下顺序尝试了这些URL模式: ^管理员/ 当前URL post/与这些URL中的任何一个都不匹配 mysite/blog/url.py from django.conf.urls import url from . import views urlpatterns =

我正在做“Django by example”中的“Blog”教程,我发现了一个错误。很好。我做错了什么

错误: 找不到页面(404) 请求方法:获取 请求URL: Django使用mysite.URL中定义的URLconf,按以下顺序尝试了这些URL模式: ^管理员/ 当前URL post/与这些URL中的任何一个都不匹配

mysite/blog/url.py

from django.conf.urls import url
from . import views

urlpatterns = {
    # post views
    url(r'^$', views.post_list, name='post_list'),
    url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/'\
        r'(?P<post>[-\w]+)/$',
        views.post_detail,
        name='post_detail'),
}
mysite/blog/admin.py

from django.contrib import admin
from .models import Post


class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug', 'author', 'publish', 'status')
    list_filter = ('status', 'created', 'publish', 'author')
    search_fields = ('title', 'body')
    prepopulated_fields = {'slug': ('title',)}
    raw_id_fields = ('author',)
    date_hierarchy = 'publish'
    ordering = ['status', 'publish']

admin.site.register(Post, PostAdmin)
mysite/mysite/url.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^blog/', include('blog.urls',
                           namespace='blog',
                           app_name='blog')),
]
mysite/blog/models

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse


class Post(models.Model):
    STATUS_CHOICES = {
        ('draft', 'Draft'),
        ('published', 'Published'),
    }
    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250,
                            unique_for_date='publish')
    author = models.ForeignKey(User,
                               related_name='blog_posts')
    body = models.TextField()
    publish = models.DateTimeField(default=timezone.now)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=10,
                              choices=STATUS_CHOICES,
                              default='draft')

    def get_absolute_url(self):
        return reverse('blog:post_detail',
            args=[self.publish.year,
            self.publish.strftime('%m'),
            self.publish.strftime('%d'),
            self.slug])

    class Meta:
        ordering =('-publish',)

        def __str__(self):
            return self.title

该错误意味着您没有在
url.py
中定义
/post/
url

您应该将URL更改为:

urlpatterns = {
    # post views
    url(r'^post/$', views.post_list, name='post_list'),
    ...
}
或者,访问
/blog/
上的帖子列表

我认为第一个版本会是一个更好的选择


希望有帮助

您正在使用以下内容包括博客URL:

url(r'^blog/', include('blog.urls',
                       namespace='blog',
                       app_name='blog')),
因此,您应该转到
http://127.0.0.1:8000/blog/
,而不是
http://127.0.0.1:8000/post/
查看您的
post\u列表
视图

请注意,您应该在博客URL中使用列表而不是集合。将花括号替换为方括号

urlpatterns = [
    ...
]

我尝试了第一个版本,但它不起作用,仍然有错误。“访问/blog/上的帖子列表”是什么意思?@Greg我的意思是你应该使用``而不是``仍然不起作用,也许这是模型中的某个东西,并获取绝对url?我是初学者,所以我可能会犯一些错误
urlpatterns = [
    ...
]