一个简单的django应用程序,它提供了一个基于奇妙的sir trevor项目的模型字段和相应的小部件

django-sirtrevor的Python项目详细描述


django sirtrevor是一个提供内容编辑的简单django应用程序 基于奇妙的Sir Trevor项目的小部件。

快速启动

  1. 安装django sirtrevor:

    pip install django-sirtrevor
    
  2. sirtrevor添加到已安装的应用程序设置中,如下所示:

    INSTALLED_APPS = (
        ...
        'sirtrevor',
    )
    
  3. 添加特雷弗爵士网址:

    url(r'^sirtrevor/', include('sirtrevor.urls')),
    
  4. 创建一个使用SirTrevorField

    的模型
    from django.db import models
    from sirtrevor.fields import SirTrevorField
    
    class MyModel(models.Model):
        ...
        content = SirTrevorField()
        ...
    
  5. 现在您可以…

    • 在django管理中查看它的运行情况
    • 从模型中创建ModelForm
    • 创建一个纯Form并使用sirtrevor.forms.SirTrevorFormField
    • 使用sirtrevor.widgets.SirTrevorWidget作为 Textarea

配置

Sir Trevor有几个configuration options。您可以自定义大多数 它们在您的settings.py中广泛投影,或者在每个小部件的基础上投影一些 kwargs用于SirTrevorWidget

可用选项CONFIGURATION_SETTINGS/widget_kwargs):

SIRTREVOR_BLOCK_TYPES/st_block_types
要与编辑器一起使用的块类型列表。 默认为['Text', 'List', 'Quote', 'Image', 'Video', 'Tweet', 'Heading']
SIRTREVOR_DEFAULT_TYPE/st_default_type
启动编辑器的默认块。 默认为None
SIRTREVOR_BLOCK_LIMIT/st_block_limit
可显示的块的总数。 默认为0
SIRTREVOR_BLOCK_TYPE_LIMITS/st_block_type_limits
限制可按其类型显示的块数。 默认为{}
SIRTREVOR_REQUIRED/st_required
验证所需的强制块类型。 默认为None
SIRTREVOR_UPLOAD_URL/st_upload_url
ajax图像上传的url。 默认为/sirtrevor/attachments/(取决于包含 Django Sirtrevor的URL位于^{TT31}$)
SIRTREVOR_UPLOAD_PATH
相对于MEDIA_ROOT存储上载图像的路径。(不是 可通过widget kwargs配置) 默认为attachments
SIRTREVOR_ATTACHMENT_PROCESSOR
一个字符串,包含将在 正在保存上载的图像。有关详细信息,请参见below。(不可通过 小工具夸尔格斯) 默认为None

调整图像大小

您可以通过在 编码并将SIRTREVOR_ATTACHMENT_PROCESSOR指向其位置。第一次 参数将是文件对象,方法必须返回 SimpleUploadFile对象。

示例在名为core的应用程序中的utils.py中实现。 SIRTREVOR_ATTACHMENT_PROCESSOR设置为core.utils.resize_attachment

from PIL import Image
from StringIO import StringIO
from django.core.files.uploadedfile import SimpleUploadedFile


def resize_attachment(file_):
    size = (1024, 9999)
    try:
        temp = StringIO()
        image = Image.open(file_)
        image.thumbnail(size, Image.ANTIALIAS)
        image.save(temp, 'jpeg')
        temp.seek(0)
        return SimpleUploadedFile(file_.name, temp.read(), content_type='image/jpeg')
    except Exception as ex:
        return file_

自定义块

sir trevor可以通过custom blocks扩展。从0.2.1开始 django sirtrevor还基本支持自定义块。

下面是一个循序渐进的小指南:

myapp/blocks.py

from sirtrevor.blocks import BaseBlock

class MyCustomBlock(BaseBlock):
    name = 'MyCustomName'

    class Media:
        js = ['sirtrevor/blocks/mycustomblock.js']

myapp/models.py

import sirtrevor
from .blocks import MyCustomBlock

sirtrevor.register_block(MyCustomBlock)

myapp/static/sirtrevor/blocks/mycustomblock.js

SirTrevor.Blocks.MyCustomName = SirTrevor.Block.extend({
    type: 'mycustomblock',
    // ...
});

有关custom blocks的详细信息,请参阅sir trevor的文档 关于自定义块的javascript部分。

myapp/templates/sirtrevor/blocks/mycustomblock.html

<div class="content-block mycustom-block">
    <!-- Whatever JSON the custom block creates is available in the template -->
</div>

settings.py

# ...

SIRTREVOR_BLOCK_TYPES = ['Text', '...', 'MyCustomName']

# ...

请查看实现 文件下载的简单块类型。

许可证

MIT

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java编译器整数错误   java为什么我不能在eclipse中将jsp添加到google应用程序引擎中?   用于计算的java交换机时区   java将另一个表中的列添加到现有SQL/query语句中   Java线程:在start()之后对线程对象调用run()方法   java问题:使用Xlint重新编译:未选中以获取详细信息   java如何使用控制台中的输入   java计算字符串中最高数字的数量   java将数据源密码置于上下文之外。xml   java如何防止变量永远运行?   是VB。NET SmtpClient API受限于Java SendMail?   java在Jmeter中生成会话ID   使用java从XML检索文本和标记   无法参数化Java swing JComboBox   java在maven多模块项目的父配置中将模块设置为其他模块的依赖项