2

Я новичок в django-cms, и я пытаюсь создать placeholder вне cms. Я создал модель и вставил некоторые фиктивные данные для тестирования. Затем я создал шаблон для отображения этой модели и проверил, удалось ли мне редактировать его в интерфейсе. Вот мой HTML-код, где я получаю сообщение об ошибке:Ошибка: NoReverseMatch при использовании render_model

{% 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: [] 

И эта ошибка hapening в render_model линии. (Я прокомментировал каждую строку, чтобы проверить, где именно происходит исключение.)

Я добавил URL в мой список, чтобы увидеть, если будет работать:

url(r'^news/(?P<pk>\d+)/$', login_required(v_index.news), name='news_change') 

Но до сих пор точно такую ​​же ошибку.

Знаете ли вы, что такое hapenning?

EDIT:

Вот моя модель:

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') 

UPDATE:

Я пытался настроить админ часть для этой модели, поэтому я добавил файл admin.py: (и удалена url, указанный выше)

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

Вы передаете 'pk' в любом месте вашего шаблона или вида? – jape

+0

@jape Я передаю объект. Нужно ли мне также передавать pk? Можете ли вы привести пример? – patricia

+0

У вас есть админ без '' '? 'url (r '^ admin /', include (admin.site.urls)),' –

ответ

0

Вы определили пространство имен 'news_change', но django пытается изменить на 'cms_myapp_news_change' ... Где бы ни происходило обратное, попробуйте сделать так, чтобы оно выглядело так: reverse('cms_myapp:news_change').

Удостоверьтесь, что 'cms_myapp' зарегистрирован в главных URL-адресах проекта или cms_apps.py, если он загружен приложением.

Проверьте модели метода get_absolute_url() или другие, которые пытаются сделать это наоборот.

Это всего лишь пример, проверьте обратное и зарегистрируйте имя пользователя.

+0

Проблема в том, что это обратное не сделано мной. Это что-то происходит, когда я вызываю 'render_model': s – patricia

+0

Попробуйте найти исходный код тега шаблона' render_model'. Я не использовал его, но я не нашел его и не смог найти быстрый ответ :( Также из вашего обратного исключения вы уже отправляете pk, вы можете видеть из отправленных аргументов. ''Обратный для' cms_myapp_news_change ' с аргументами (5L,) '' –

Смежные вопросы