无法登录Django admin 404错误

时间:2014-12-16 17:41:23

标签: python django

我目前无法在Django中登录我的管理员,我得到了404页面。

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin
No Blog entry found matching the query

更新#3

上次更新: 12月17日上午10点

状态:尚未解决,可以使用一些帮助

  • 我已在此帖子顶部更新了错误消息,是的,错误消息很短。
  • 除了名为blog的应用程序之外,我还包含了实际项目的url.py.
  • 修复了迁移不同步的问题
  • 终端
  • 中不再出现错误
  • 问题可能出在模型,视图或urls.py

可疑

此代码段与" startproject takehome"

相关

urls.py

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

urlpatterns = patterns(
    '',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^markdown/', include("django_markdown.urls")),
    url(r'^', include('blog.urls')),
)

settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'blog',
    'django_markdown',
)

这三个代码段与名为" Blog"

的应用程序相关

Urls.py

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

urlpatterns = patterns(
    '',
    url(r'^$', views.BlogIndex.as_view(), name="list"),
    url(r'^(?P<slug>\S+)$', views.BlogDetail.as_view(), name="detailed"),
)

Models.py

from django.db import models
from django.core.urlresolvers import reverse

# Create your models here.
class FullArticleQuerySet(models.QuerySet):
    def published(self):
        return self.filter(publish=True)

class FullArticle(models.Model):
    title = models.CharField(max_length=150)
    author = models.CharField(max_length=150)
    slug = models.SlugField(max_length=200, unique=True)
    pubDate = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    category = models.CharField(max_length=150)
    heroImage = models.CharField(max_length=250, blank=True)
    relatedImage =  models.CharField(max_length=250, blank=True)
    body =  models.TextField()
    publish = models.BooleanField(default=True)
    gameRank = models.CharField(max_length=150, blank=True, null=True)

    objects = FullArticleQuerySet.as_manager()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("FullArticle_detailed", kwargs={"slug": self.slug})

    # def random(self):
    #   return self.get_queryset().order_by('?').values('title','author','heroImage','body').first()

    class Meta:
        verbose_name = "Blog entry"
        verbose_name_plural = "Blog Entries"
        ordering = ["-pubDate"]

views.py

from django.views import generic
from . import models 

# Create your views here.
class BlogIndex(generic.ListView):
    queryset = models.FullArticle.objects.published()
    template_name = "list.html"
    # paginate_by = 2

class BlogDetail(generic.DetailView):
    model = models.FullArticle
    template_name = "detailed.html"

# random = models.FullArticle.objects.order_by('?').values('title','author','heroImage','body').first()

2 个答案:

答案 0 :(得分:1)

由于迁移,您的架构肯定存在问题。你可以尝试一些事情。

编辑:由于我在当前的models.py中没有看到字段order,因此最好选择1。

选项1 :刷新并重新同步数据库。 (或者更好的是,删除数据库并重新同步 - 如果使用SQLite3则很容易)。在blog/目录中找到db.sqlite3并将其删除。 警告:如果这样做,您将丢失所有数据。完成后,运行./manage.py syncdb,不要担心迁移(特别是在运行Django 1.7时)。

选项2 :删除导致错误的字段(如果可能),运行迁移,然后将其重新添加并重新运行迁移。

<击>

选项3 :查找所有订单并删除两个不唯一的订单,然后重新运行迁移。

答案 1 :(得分:1)

更新:确定迁移问题已被移除。

更新2:确定所以它缺少管理网址模式

您在主urls.py中导入博客网址的情况如何?您将通过模式r'^ admin /'和r'^ markdown /'作为博客条目的所有内容进行匹配。 现在你的请求是“/ admin”,并且由于最后缺少“/”(斜杠),而不是与第一个模式匹配,它与最后一个匹配:r'^(?P \ S +)$”。因此,现在它查找带有名为“admin”的slug的博客条目,并且未能找到一个,因此返回404具有非常明确的描述。 (下次不要犹豫,在问题中加入:)

我还希望请求“/ admin /”导致管理页面,因为它会与r'^ admin /'匹配,因为尾随/

更好的做法是避免主网址和应用程序特定网址之间发生冲突,方法是将您的博客文章略微添加到网址:

url(r'^blog/', include('blog.urls', namespace="blog")),

https://docs.djangoproject.com/en/dev/intro/tutorial03/#namespacing-url-names


更新前

: 也许您尝试在其中包含非唯一值后使订单字段唯一。您是否尝试删除整个数据库并重建它?这将是我的第一个建议。

似乎sqlite中存在一些怪癖,我基本上从不使用它。我建议也尝试使用像postgresql或mysql这样更成熟的东西。