Найти - Пользователи
Полная версия: плагин для django-cms
Начало » Django » плагин для django-cms
1
ph0en1x
Вобщем пытаюсь написать плагин основываясь на 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)
Сделал cms_plugins.py:
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)
а вот что написатьв posts/test.html никак не разберусь.
и ниодного более понятного примера чем в доках найти не смог.
vaxXxa
Ну, posts/test.html - это шаблон, который будет рендерится для Вашего кастомного плагина.
В шаблоне доступны переменные, которые Вы туда передали {{ list }}, {{ object }} и т.п.
По сути, плагин - это возможность юзать инстанс одного класса, котоорый Вы наследовали от CMSPlugin. В Вашем случае, это - PostsPlugin.
Короче, для примера:
<div>
Title of your post: {{ list.title }}.
Content of your post: {{ list.content }}.
</div>
А вообще django-cms кривая и глючная до ужаса + я бы посоветовал сначала выучить основы Пайтона, потом Джанги, а потом уже CMSки, которая написана на базе Джанго.
ph0en1x
vaxXxa, спасибо я кажется разобрался хотя проблема моя была вовсе не в шаблонах, модель криво подключил.
С основами джанго я немного знаком, потому и решил погладеть поближе CMSки.

т.е. если я правильно понял cms_plugin.py выполняет туже самую роль что views.py только с дополнительной моделью?
PooH
vaxXxa
А вообще django-cms кривая и глючная до ужаса
А в чем это проявляется? Просто думал попользовать ее в одном проекте, а теперь прямо весь в сомнениях… ;)
ph0en1x
Столкнулся с ещё одной проблемкой. Как с помощью django-cms обрабатывать url?
Если в джанго просто добалялось в views.py: (r'^posts/(?P<post_id>\d+)/$', detail), то сейчас как управление урлами проиходит?
vaxXxa
PooH, ну мы вот сейчас прикрутили django-CMS на один немаленький проект. Тормоза пошли, куча левых запросов генерит и т.п.
Хотя это бета и на сайте так и пишут, чтобы не юзали пока бету. Но мы юзаем.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB