1
我一直在努力,現在天使用get_absolute_url,每當我在管理頁面上的視圖中點擊網站上的按鈕,或者點擊提交我的外接窗體頁上,我得到這個錯誤:Django的get_absolute_url NoReverseMatch零模式試圖
NoReverseMatch at /admin/r/14/3/ (or NoReverseMatch at /blogs/add/)
Reverse for 'blog_detail' with arguments '()' and keyword arguments '{'pk': 3}' not found. 0 pattern(s) tried: []
如果我去的mysite /博客/ 3我得到博客的詳細信息頁面就好了,因爲我有它設置。所以我知道該網頁的工作原理,但它似乎沒有試圖找到它,因爲它說零模式嘗試。
文檔我看主要有:(我認爲至少是相關的,如果需要更多的信息讓我知道請)
https://docs.djangoproject.com/en/1.7/topics/class-based-views/generic-editing/ https://docs.djangoproject.com/en/1.7/ref/models/instances/#get-absolute-url
我的代碼
博客。 models.py中
from django.contrib.auth.models import User
from django.conf import settings
from django.db import models
from django.core.urlresolvers import reverse
from audit_log.models.fields import CreatingUserField, CreatingSessionKeyField
class Blog(models.Model):
created_by = CreatingUserField(related_name = "created_categories")
created_with_session_key = CreatingSessionKeyField()
created_time = models.DateTimeField(auto_now_add=True)
blog_title = models.CharField('Blog Title', max_length=200)
short_description = models.TextField('Short Description', max_length=140)
blog_image = models.CharField('Image', max_length=200)
youtube_link = models.URLField('YouTube', max_length=200)
external_site_link = models.URLField('Website', max_length=200)
full_blog = models.TextField(max_length=10000)
def get_absolute_url(self):
return reverse('blog_detail', kwargs={'pk': self.pk})
def __unicode__(self):
return self.blog_name
urls.py
from __future__ import unicode_literals
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.views.generic import TemplateView
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^blogs/', include('blogs.urls', namespace='blogs')),
)
blogs.urls.py
blogs.views.py
from django.shortcuts import render
from django.core.urlresolvers import reverse
from django.views.generic import DetailView
from django.views.generic import RedirectView
from django.views.generic import UpdateView
from django.views.generic import ListView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.core.urlresolvers import reverse_lazy
# Only authenticated users can access views using this.
from braces.views import LoginRequiredMixin
from .models import Blog
class BlogDetailView(DetailView):
model = Blog
class BlogListView(ListView):
model = Blog
class BlogCreate(LoginRequiredMixin, CreateView):
model = Blog
fields = ['blog title', 'short_description', 'blog_image',
'youtube_link', 'external_site_link', 'full_blog']
class BlogUpdate(LoginRequiredMixin, UpdateView):
model = Blog
fields = ['blog title', 'short_description', 'blog_image',
'youtube_link', 'external_site_link', 'full_blog']
class BlogDelete(LoginRequiredMixin, DeleteView):
model = Blog
success_url = reverse_lazy('blog_list')
資本B爲實際上是一個錯字(現在更正了)。我主要是複製/粘貼,但我想編輯的東西,我不小心改變了,不知怎的,(要歸咎於睡眠不足)。無論如何,我想我的進步與你的幫助。我改爲'博客:blog_detail',我不再有這個錯誤。但是,現在我被帶到http://searchassist.verizon.com/blahblahblahblah。在頁面上,它說對不起,我們找不到http它可能不可用或可能不存在。我的網站目前只在本地,它似乎首先嚐試正確的本地網址。這麼奇怪。 – 2014-11-25 12:06:32
好吧,我只是測試增加一個新的博客,它完美地工作。所以現在它只是從管理頁面的網站視圖不工作。它採用了我在上面描述的搜索引擎verizon的東西。 – 2014-11-25 12:14:07
OK固定在現場按鈕管理員查看我的最後一點問題。我不得不改變我的網站域名字段。現在一切都運轉良好。非常感謝你doniyor。命名空間解決了它。 – 2014-11-25 12:27:23