错误:使用render_model时的NoReverseMatch

时间:2016-07-19 15:30:15

标签: django django-models django-templates django-views django-cms

我是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)

但我仍然得到同样的错误。

1 个答案:

答案 0 :(得分:0)

您已定义了名称空间'news_change',但是django尝试在'cms_myapp_news_change'上进行反转...无论何处发生反向,都要尝试使其看起来像reverse('cms_myapp:news_change')

确保'cms_myapp'已在主项目网址或cms_apps.py中注册(如果已由应用加载。

检查模型方法get_absolute_url()或其他试图反向的方法。

这只是一个例子,请检查您的反向并注册namepsace。