我有一个 django-cms 项目,其中包含一个名为 core 的应用程序。在核心内部,我创建了一个文件“cms_app.py”,如下所示:
# -*- coding: utf8 -*-
from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool
from django.utils.translation import ugettext_lazy as _
class CoreApphook(CMSApp):
name = _(u"Core Apphook")
urls = ["core.urls"]
apphook_pool.register(CoreApphook)
Run Code Online (Sandbox Code Playgroud)
在我的 core/urls.py 中,我有以下代码:
# -*- coding: utf8 -*-
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('',
# URLS refrentes ao apphook CoreApphook
url(r'^$', 'noticia.views.ultimas_noticias'),
url(r'^noticias/$', 'noticia.views.ultimas_noticias'),
url(r'^noticias/(?P<categoria>[\w\d-]+)/$', 'noticia.views.noticias_categoria'),
url(r'^noticias/(?P<categoria>[\w\d-]+)/(?P<pagina>\d+)/$', 'noticia.views.noticias_categoria_paginated'),
url(r'^noticias/(?P<categoria>[\w\d-]+)/(?P<subcategoria>[\w\d-]+)/(?P<titulo>[\w\d-]+)/$', 'noticia.views.noticia'),
url(r'^paginacao/noticias/$', 'noticia.views.noticias_categoria_paginated'),
)
Run Code Online (Sandbox Code Playgroud)
我试图达到这个观点:
url(r'^noticias/(?P<categoria>[\w\d-]+)/(?P<subcategoria>[\w\d-]+)/(?P<titulo>[\w\d-]+)/$', 'noticia.views.noticia'),
Run Code Online (Sandbox Code Playgroud)
通过使用这个网址:
http://127.0.0.1:8000/noticias/filmes/acao/lol-e-poka-zuera/
Run Code Online (Sandbox Code Playgroud)
但是文件 urls.py 没有被 Apphook 加载。我已经在“Noticias”和“Noticias”的每个子页面中设置了 …
我最近从Django-CMS 2.3.5升级到2.4.1.
以前我有一个这样的模型:
from django.db import models
from cms.models.pagemodel import Page
class MyModel(models.Model):
my_page = models.ForeignKey(Page)
Run Code Online (Sandbox Code Playgroud)
在管理员中,这将很好地允许我选择要关联的页面MyModel.
现在我已经升级,并在我的所有页面上按下"发布草稿",同一管理页面在其选择框中显示每个页面的两个副本 - 一个已发布,一个草稿.
一些进一步的调查发现,teaser插件在其定义中添加了以下内容来处理:
page_link = models.ForeignKey(Page,
limit_choices_to={'publisher_is_draft': True},
...)
Run Code Online (Sandbox Code Playgroud)
同样,我曾经能够在我的视图中查找页面URL,如下所示:
Page.objects.get(reverse_id='update').get_absolute_url()
Run Code Online (Sandbox Code Playgroud)
但现在我必须使用:
Page.objects.get(reverse_id='update', publisher_is_draft=False).get_absolute_url()
Run Code Online (Sandbox Code Playgroud)
这看起来有点难看.
是limit_choices_to和额外的领域中get,现在有必要吗?或者是否有更简洁的方式来查看已发布的页面?(例如,我注意到其他cms插件,例如链接,图片,使用没有limit_choices_to参数的外键.)
django 1.5.1 django cms 2.4.2
我正在学习django-cms,正在我的第一个测试网站上工作.我搜索了这个网站并搜索了这些问题,但找不到任何答案,这就是为什么我在这里发帖....任何帮助将不胜感激!
通过管理页面(作为超级用户),我添加了一个除了其他权限之外还有添加/更改/删除页面权限的组.
我创建了一个用户并将用户分配给该组.
首先,如果我没有将该用户指定为工作人员,那么他们无法访问管理站点以便开始登录 - 这对我来说没有意义:用户从来没有选择的重点是什么登录?或者是否有我遗漏的东西 - 除了管理网站本身之外还有另一种登录方式.
其次,在将用户标记为工作人员并记住用户是具有添加/编辑/删除页面权限的组的成员之后,当用户登录时,他可以执行其他管理任务,但他仍然获得了权限但仍然无法添加/编辑/删除页面.虽然页面显示为对象,但没有指向页面列表的链接.
我正在使用DjnagoCMS 3,我对所有编辑弹出窗口都有烦人的问题.当页面内容比浏览器窗口更大(更高)时会发生这种情况.当我尝试编辑文本或任何cms插件(双击内容)时,它会显示弹出窗口,但它的高度比监视器分辨率的高度更高.

如果内容长度不是很大,一切都还可以.

问题出在django cms的js/css中.
我用 djangoCMS 创建了一个网站,并大量使用了 apphooks、cms 插件、向导等。我们有一个简单的应用程序,只有一个模型包含应该显示在主页上的核心数据。
models.py
from django.db import models
from django.utils.text import slugify
from django.urls import reverse
from cms.models.fields import PlaceholderField
from djangocms_text_ckeditor.fields import HTMLField
class Programme(models.Model):
name = models.CharField(max_length=60, unique=True)
slug = models.SlugField()
icon = models.CharField(max_length=50, unique=True)
introduction = HTMLField()
overview = PlaceholderField(
'programme_overview',
related_name='programmes_overview'
)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse(
'programmes:programme-detail',
kwargs={'slug': self.slug}
)
def save(self, *args, **kwargs):
if not self.pk:
self.slug = slugify(self.name)
super(Programme, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
为此,我决定创建一个自定义包含模板标签。
templatetags/programmes_tags
from django import template
from …Run Code Online (Sandbox Code Playgroud) 我有类似的问题需要解决.我的数据库在生产环境中经常更改,因此我想在本地准备我的cms内容并将其与生产数据库一起迁移.我怎样才能做到这一点?
在django-cms中应该有一个方便的方式来完成这样的任务.
我想从指定的本地目录(从GitHub下载)安装一些python包 requirements.txt
-e ./src/django-django-eca4737
-e ./src/divio-django-appmedia-55835b6
-e ./src/ojii-django-sekizai-25c64f4
-e ./src/ojii-django-classy-tags-f2076f6
-e ./src/theatlantic-django-south-471b16b
-e ./src/etianen-django-reversion-bdb9e8e
-e ./src/django-mptt-django-mptt-7d3e111
-e ./src/jezdez-django-appconf-53c5de7
-e ./src/jezdez-django_compressor-c726239
-e ./src/mongodb-mongo-python-driver-fcb88ee
-e ./src/divio-django-cms-66fbff0
PIL
wsgiref
Run Code Online (Sandbox Code Playgroud)
但是,在pip从本地目录(pip install -r requirements.txt)安装包之后,它还将它们作为DjangoCMS依赖项(相同版本!)从远程repos安装它们.怎么避免这个?
是否有可能通过其slug解析页面网址?就像是:
from django.core.urlresolvers import reverse
reverse('pages-details-by-slug',{slug:'my-page-slug'})
Run Code Online (Sandbox Code Playgroud)
但我得到了:
NameError: name 'slug' is not defined
Run Code Online (Sandbox Code Playgroud)
对此有何帮助?
我是Django CMS的新手,我尽力避免询问,但这个让我发疯.我创建了一个带有Topic和Category模型的Wiki应用程序.我将它连接到CMS上的网站并将其添加到我的菜单中.现在,我希望能够在我的菜单上显示所有顶级类别,他们的子类别和主题,以及这些类别的子类别等.
Menu/Navigation should look like this:
Wiki
Category1
Category1.1
Topic
Category1.2
Topic
Category2
Topic
Category3
...
Right now i can only show the Top categories:
Wiki
Category1
Category2
Category3
Run Code Online (Sandbox Code Playgroud)
我已经创建了一个menu.py来获取我的Wiki上的自定义子菜单(您在上面看到的那个):
menu.py
class WikiSubMenu(CMSAttachMenu):
name = _("Wiki Sub-Menu")
def get_nodes(self, request):
nodes = []
categories = Category.objects.filter(parent_id__isnull=True)
for c in categories:
node = NavigationNode(
mark_safe(c.name),
c.get_absolute_url(),
c.id,
)
nodes.append(node)
return nodes
menu_pool.register_menu(WikiSubMenu)
Run Code Online (Sandbox Code Playgroud)
我的分类型号:
class Category(models.Model):
''' Category model. '''
name = models.CharField(max_length=100)
slug = models.SlugField(unique=True)
description = models.TextField(blank=True)
parent = …Run Code Online (Sandbox Code Playgroud) 我一直在Django CMS安装中开发一些应用程序,并发现它可以很好地缓存我的订单.这可能不是生产中的问题,但在我测试布局时,不得不等待10分钟(或重新启动内存缓存)变得非常无聊.
我可以在开发设置中全局禁用Django CMS的缓存吗?
django-cms ×10
django ×7
python ×3
database ×1
django-views ×1
menu ×1
migration ×1
parent-child ×1
pip ×1
recursion ×1
url ×1