Форум сайта python.su
 
							 0
  0   
								
								Вобщем пытаюсь написать плагин основываясь на http://www.django-cms.org/en/documentation/2.0/custom_plugins/
есть model.py:
from django.db import models
from sklif.tagging.fields import TagField
class Author(models.Model):
name = models.CharField(max_length=50)
lastname = models.CharField(max_length=50)
email = models.EmailField()
def __unicode__(self):
return self.name
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(max_length=10000)
pubdate = models.DateTimeField()
author = models.ManyToManyField(Author, through='Postship')
tags = TagField()
def __unicode__(self):
return self.title
class Postship(models.Model):
post = models.ForeignKey(Post)
author = models.ForeignKey(Author)
from cms.models import CMSPlugin
class PostsPlugin(CMSPlugin):
list = models.ForeignKey(Post)
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from models import PostsPlugin
from django.utils.translation import ugettext as _
class CMSPostsPlugin(CMSPluginBase):
model = PostsPlugin
name = _("Posts")
render_template = "posts/test.html"
def render(self, context, instance, placeholder):
context.update({'list':instance.list,
'object':instance,
'placeholder':placeholder})
return context
plugin_pool.register_plugin(CMSPostsPlugin)
Офлайн
 
							 0
  0   
								
								Ну, posts/test.html - это шаблон, который будет рендерится для Вашего кастомного плагина.
В шаблоне доступны переменные, которые Вы туда передали {{ list }}, {{ object }} и т.п.
По сути, плагин - это возможность юзать инстанс одного класса, котоорый Вы наследовали от CMSPlugin. В Вашем случае, это - PostsPlugin.
Короче, для примера:
<div>
Title of your post: {{ list.title }}.
Content of your post: {{ list.content }}.
</div>
Офлайн
 
							 0
  0   
								
								vaxXxa, спасибо я кажется разобрался хотя проблема моя была вовсе не в шаблонах, модель криво подключил.
С основами джанго я немного знаком, потому и решил погладеть поближе CMSки.
т.е. если я правильно понял cms_plugin.py выполняет туже самую роль что views.py только с дополнительной моделью?
Офлайн
 
							 72
  72   
								
								vaxXxaА в чем это проявляется? Просто думал попользовать ее в одном проекте, а теперь прямо весь в сомнениях… ;)
А вообще django-cms кривая и глючная до ужаса
Офлайн
 
							 0
  0   
								
								Столкнулся с ещё одной проблемкой. Как с помощью django-cms обрабатывать url?
Если в джанго просто добалялось в views.py: (r'^posts/(?P<post_id>\d+)/$', detail), то сейчас как управление урлами проиходит?
Офлайн
 
							 0
  0   
								
								PooH, ну мы вот сейчас прикрутили django-CMS на один немаленький проект. Тормоза пошли, куча левых запросов генерит и т.п.
Хотя это бета и на сайте так и пишут, чтобы не юзали пока бету. Но мы юзаем.
Офлайн