一个简单的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 Android解析JSON数据显示重复结果   Java图像写入   java将JSON对象作为对象而不是字符串写入文件   java获取servlet中的选定下拉列表值   java PowerMockito 1.6.0验证Mockito扩展API中的私有最终重载方法   java将地图图像更改为节点和边   java如何更改IntelliJ IDEA方案和窗格主题?   如何在java中解析文本文件?   当我使用Selenium IDE时,java WebDriver无法找到WebElement,而同样的css在哪里工作良好   java Android无线遥控摄像机   Go、Java和C#中数组的最大长度是多少?   java Guava的@Subscribe事件总线可见性   java如何将带有服务调用的循环重构为流?   java如何处理自定义Hamcrest匹配器中的异常?   java在Android中保存GUI状态   基于时间戳的java检索卡夫卡主题中的偏移量   图像构造函数中的java差异   java RxAndroidBle如何从多个服务读取通知?