我是django-cms的新手,我试图在cms之外创建一个占位符。我创建了模型并插入了一些虚拟数据进行测试。然后我创建了一个模板来显示这个模型,并检查我是否能够在前端编辑它。这是我的HTML代码,我收到错误:
{% load i18n staticfiles thumbnail cms_tags %}
<article class="article">
<h2>
{% render_model article "title" %}
</h2>
<p>{{ article.creation_date|date }}</p>
{% if detail_view %}
{% render_placeholder article.content language placeholder_language %}
{% endif %}
</article>
我得到的错误是:
NoReverseMatch at /en/news/
Reverse for 'cms_myapp_news_change' with arguments '(5L,)' and keyword arguments '{}' not found. 0 pattern(s) tried: []
这个错误正在render_model
行中出现。 (我已经对每一行进行了评论,以检查异常发生的确切位置。)
我已经在我的列表中添加了一个网址,看看是否有效:
url(r'^news/(?P<pk>\d+)/$', login_required(v_index.news), name='news_change')
但仍然是完全相同的错误。
你知道什么是hapenning吗?
编辑:
这是我的模特:
class News(models.Model):
id = models.AutoField(db_column='ID', primary_key=True)
title = models.TextField(verbose_name=_(u'Title'), db_column='TITLE')
description = models.TextField(verbose_name=_(u'Description'), db_column='DESCRIPTION')
creation_date = models.DateTimeField(db_column='CREATION_DATE', verbose_name=_(u'Creation Date'), auto_now_add=True)
content = PlaceholderField('news_content',
related_name='news_content')
class Meta:
app_label = 'cms_myapp'
ordering = ['-creation_date']
verbose_name = _(u'New')
verbose_name_plural = _(u'News')
更新:
我已尝试为此模型配置管理部分,因此我添加了文件admin.py
:(并删除了上面发布的网址)
from cms.admin.placeholderadmin import FrontendEditableAdminMixin
from django.contrib import admin
from cms_myapp import models
class NewsAdmin(FrontendEditableAdminMixin,admin.ModelAdmin):
frontend_editable_fields = ("title", "description")
admin.site.register(models.News, NewsAdmin)
但我仍然得到同样的错误。
答案 0 :(得分:0)
您已定义了名称空间'news_change'
,但是django尝试在'cms_myapp_news_change'
上进行反转...无论何处发生反向,都要尝试使其看起来像reverse('cms_myapp:news_change')
。
确保'cms_myapp'
已在主项目网址或cms_apps.py中注册(如果已由应用加载。
检查模型方法get_absolute_url()或其他试图反向的方法。
这只是一个例子,请检查您的反向并注册namepsace。