40 - 项目-02- choices选项 & 富文本编辑器

本文介绍了在Django模型中如何使用choices属性定义字段选项以及如何集成HTMLField来实现富文本字段,包括TinyMCE的安装配置、模型类字段定义、数据库迁移和站点管理的设置。
摘要由CSDN通过智能技术生成

模型中的特殊方法和属性

一. choices属性

choices: 定义模型字段属性使用

class GoodsTest(models.Model):
    """测试模型类"""
    STATUS_CHOICES = (
        (0, '下架'),
        (1, '上架')
    )
    # choices 选项
    status = models.SmallIntegerField(default=1,choices=STATUS_CHOICES, verbose_name="商品状态")

二. HTMLField 方法

        定义富文本字段类型

借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的、所见即所得的页面。此处以tinymce为例,其它富文本编辑器的使用也是类似的。

        1. 安装第三方库
pip install django-tinymce==2.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
        2. settings.py注册配置
# 注册
INSTALLED_APPS=[
    ...
    'tinymce' # 富文本编辑器
]


# 富文本编辑器配置
TINYMCE_DEFAULT_CONFIG={
    'theme':'advanced', # 主题
    'width':600,
    'height':400
}
        3. 配置富文本路由
# 主应用 / urls.py配置富文本路由
urlpatterns = [
   ...
    path('^tinymce', include('tinymce.urls')), # 富文本编辑器
]
        4. 配置模型类字段
rom django.db import models
from tinymce.models import HTMLField # 导入富文本类型

class GoodsTest(models.Model):
    """测试模型类"""
    STATUS_CHOICES = (
        (0, '下架'),
        (1, '上架')
    )
    # choices 选项
    status = models.SmallIntegerField(default=1,choices=STATUS_CHOICES, verbose_name="商品状态")
    
    # 富文本
    detail =HTMLField(verbose_name="商品详情")

    class Meta:
        db_table='df_goods_test' # 数据库存储的表名
        verbose_name="商品" #自带的站点管理使用
        verbose_name_plural=verbose_name #自带的站点管理 表名
        5. 数据库迁移
python manage.py makemigrations
python manage.py migrate


# 如果迁移报错:
# TypeError: render() got an unexpected keyword argument 'renderer'

#  将提示的文件中 第93行的这个注释
# D:\venvwrapper_list\venv\djangoproject\lib\site-packages\django\forms\boundfield.py"
#renderer=self.form.renderer,
        6. 验证
# 子应用 / admin.py 设置站点管理显示表

from django.contrib import admin

from app01.models import GoodsTest

admin.site.register(GoodsTest)


"""
# 1. 创建超级管理员
python manage.py createsuperuser

# 2. 启动项目

# 3. 浏览器访问 :http://127.0.0.1:8000/admin
"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值