使用Django如何实现自定义YamlField-创新互联

本篇文章给大家分享的是有关使用Django如何实现自定义YamlField,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

成都创新互联公司专注于泗水网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供泗水营销型网站建设,泗水网站制作、泗水网页设计、泗水网站官网定制、小程序设计服务,打造泗水网络公司原创品牌,更为您提供泗水网站排名全网营销落地服务。

需求


在使用django admin时希望后台的Textarea多行文本框可以按yaml格式编写,数据库保存为Text文本类型,字段和接口中读取出来自动变为字典或列表格式。


试过pip install django-yamlfied,修改支持新版django之后


接口中返回的字段是字符串形式,不符合预期。

之前写过一版。

import yaml
from django.db import models

class YamlField(models.TextField):
  def to_python(self, value): # 将数据库内容转为python对象时调用
    if not value:
      value = {}
    if isinstance(value, (list, dict)):
      return value
    return yaml.safe_load(value)

  def get_prep_value(self, value): # create时插入数据, 转为字符串存储
    return value if value is None else yaml.dump(value, default_flow_style=False)

  def from_db_value(self, value, expression, connection): # 从数据库读取字段是调用
    return self.to_python(value)

新闻标题:使用Django如何实现自定义YamlField-创新互联
文章分享:http://azwzsj.com/article/dsdcch.html