如何在 django 中编写测试?我阅读了文档:https://docs.djangoproject.com/en/dev/topics/testing/overview/
但是我们使用 django-cms 和 sekizai 所以当我做一个简单的测试时,例如:
from django.test import TestCase
from django.test.client import Client
class AccessTest(TestCase):
def setUp(self):
# Every test needs a client.
self.client = Client()
def test_details(self):
# Issue a GET request.
response = self.client.get('/')
# Check that the response is 200 OK.
self.assertEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Traceback (most recent call last): File "/home/maazza/PycharmProjects/django_my_app/search_engine/tests.py", line 18, in test_details
response = self.client.get('/') File "/home/maazza/.virtualenvs/django_my_app/local/lib/python2.7/site-packages/django/test/client.py", line 439, in get
response = super(Client, self).get(path, data=data, **extra) File "/home/maazza/.virtualenvs/django_my_app/local/lib/python2.7/site-packages/django/test/client.py", line …Run Code Online (Sandbox Code Playgroud) 我已经学习了Django-CMS一段时间了。我试图将我的一个应用程序挂接到 cms 页面,同时仍然使用分配给它的模板。我开始知道可以从request.current_page对象中检索当前模板。我进行了很多搜索,current_page但找不到任何合适的文件。
current_page我想知道..中定义了哪些其他属性和方法
获取当前页面上的所有信息(标题、菜单、模板、插件、附加应用程序等)的最佳方式是什么?
我有一个新闻页面,在 中news.detailpage,我在一个小列中还有另外 4 个项目(新闻、视频等),作为名为 的模型的 cms_plugin CrossItems。

问题是,cms_plugin 的上下文可以包含 中所示的新闻news.detailpage。
我担心的是,我无法从 cms_plugins 上下文访问页面上下文,否则我可以轻松过滤掉新闻。
有没有什么方法可以实现这一点,以便这 4 个项目不包含左侧显示的实际新闻?
我有这个Django模型(来自Django CMS):
class Placeholder(models.Model):
slot = models.CharField(_("slot"), max_length=50, db_index=True)
default_width = models.PositiveSmallIntegerField(_("width"), null=True)
Run Code Online (Sandbox Code Playgroud)
我想删除带有重复'slot'值的Placeholder对象,只保留每个对象的第一个并删除其他对象.
如何编写执行此操作的查询(使用Django QuerySet API)?
在Django中,是否有可能有两个不同的url模式文件,这两个文件都没有被调用urls.py?或者Django是否依赖于每个Django app只有一组url模式,并且必须调用它urls.py?
我正在使用Django CMS,我希望将应用程序拆分为两个apphooks和两个菜单.所以,我已经试过分裂urls.py成pub_urls.py和train_urls.py,但我似乎通过这样做,有破事,尽管cms_app.py命名正确的URL -例如:
from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool
from django.utils.translation import ugettext_lazy as _
from resources.menu import TrainingMenu, PublicationMenu
class PublicationApp(CMSApp):
name = _("Publication App") # give your app a name, this is required
urls = ["resources.pub_urls"] # link your app to url configuration(s)
menus = [PublicationMenu]
class TrainingApp(CMSApp):
name = _("Training App") # give your app a name, this is required
urls …Run Code Online (Sandbox Code Playgroud) 我正试图在两个不同的域上运行django-cms.为此,我创建了两个域(django.contrib.sites)并添加了django-cms页面.现在我创建了一个SiteDetectionMiddleware:
class SiteDetectionMiddleware:
def process_request(self, request):
settings.SITE_ID = 1
host = request.META.get('HTTP_HOST')
if host:
try:
site = Site.objects.get(domain=host)
settings.SITE_ID = site.id
except Site.DoesNotExist:
pass
Run Code Online (Sandbox Code Playgroud)
它似乎工作正常,当我重新启动apache后第一次在浏览器中调用网站时.然后我改为其他网站并得到NoReverseMatch错误.
有谁知道什么可能是错的?
我认为这应该在django-cms开箱即用?
科林
我正在为我的Django 1.5.1和Django-cms安装构建一个应用程序.该应用程序旨在允许上传链接到URL的图像.我的代码:
cms_plugins.py
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from cms.plugins.text.widgets.wymeditor_widget import WYMEditor
from django.forms.fields import CharField
from models import ImageText
class ImageTextPlugin(CMSPluginBase):
model = ImageText
name = "video wall"
render_template = "video.html"
def render(self, context, instance, placeholder):
context.update({
'object':instance,
})
return context
plugin_pool.register_plugin(ImageTextPlugin)
Run Code Online (Sandbox Code Playgroud)
models.py
from django.db import models
from django.db.models import fields
from filer.fields.image import FilerImageField
from filer.fields.file import FilerFileField
from cms.models import CMSPlugin
class ImageText(CMSPlugin):
image = FilerImageField(related_name="image0")
link = models.CharField(max_length=255, blank=True)
Run Code Online (Sandbox Code Playgroud)
admin.py
from django.contrib import …Run Code Online (Sandbox Code Playgroud) 我正在尝试让Django Cms在我的系统上工作.遵循Django-CMS教程:https://github.com/divio/django-cms-tutorial
我不得不安装枕头,但现在我跑的时候:
$ djangocms -p . my_demo
Run Code Online (Sandbox Code Playgroud)
并填写所有选项我收到以下错误:
HTTP error 404 while getting https://github.com/divio/django-cms/archive/3.0c2.zip
Exception:
Traceback (most recent call last):
File "/Users/macbook/Desktop/MyProjects/djangoCMS/demo/demoEnv/lib/python2.7/site- packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/Users/macbook/Desktop/MyProjects/djangoCMS/demo/demoEnv/lib/python2.7/site- packages/pip/commands/install.py", line 278, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/Users/macbook/Desktop/MyProjects/djangoCMS/demo/demoEnv/lib/python2.7/site-packages/pip/req.py", line 1197, in prepare_files
do_download,
File "/Users/macbook/Desktop/MyProjects/djangoCMS/demo/demoEnv/lib/python2.7/site-packages/pip/req.py", line 1375, in unpack_url
self.session,
File "/Users/macbook/Desktop/MyProjects/djangoCMS/demo/demoEnv/lib/python2.7/site-packages/pip/download.py", line 547, in unpack_http_url
resp.raise_for_status()
File "/Users/macbook/Desktop/MyProjects/djangoCMS/demo/demoEnv/lib/python2.7/site-packages/pip/_vendor/requests/models.py", line 773, in raise_for_status
raise HTTPError(http_error_msg, response=self)
HTTPError: 404 Client Error: Not …Run Code Online (Sandbox Code Playgroud) django-cms ×10
django ×9
python ×4
current-page ×1
django-1.5 ×1
django-admin ×1
django-shell ×1
django-urls ×1
libjpeg ×1
macos ×1
pillow ×1
python-2.7 ×1
translation ×1
unit-testing ×1