Django中模型Model添加JSON类型字段的方法

本文实例讲述了Django中模型Model添加JSON类型字段的方法。分享给大家供大家参考。具体如下:

Django里面让Model用于JSON字段,添加一个JSONField自动类型如下:

class JSONField(models.TextField):
  __metaclass__ = models.SubfieldBase
  description = "Json"
  def to_python(self, value):
    v = models.TextField.to_python(self, value)
    try:
      return json.loads(v)['v']
    except:
      pass
    return v
  def get_prep_value(self, value):
    return json.dumps({'v':value})

之后就直接为Model定义JSONField类型字段了

class Category(models.Model):
  name = fields.MedialNameField()
  other= fields.JSONField()

使用很方便:

复制代码 代码如下:

Category.objects.create(name="C1", other=(1,2,3,4,5))

所有可以被json序列化的类型都可以直接赋值给other字段,很方便吧。

希望本文所述对大家的Python程序设计有所帮助。

时间: 2015-06-16

django model去掉unique_together报错的解决方案

事情是这样的,我有一个存储考试的表 class Exam(models.Model): category = cached_fields.ForeignKeyField(Category) name = models.CharField(max_length=128) date = models.DateField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(au

django模型中的字段和model名显示为中文小技巧分享

简单方法: models.py 复制代码 代码如下: class IceCreamBar(models.Model):     title = models.CharField(max_length=200,db_index=True,verbose_name="名称")         shell = models.CharField(max_length=100,verbose_name='外皮')         filling = models.CharField(max_le

浅谈django model的get和filter方法的区别(必看篇)

django的get和filter方法是django model常用到的,搞清楚两者的区别非常重要. 为了说明它们两者的区别定义2个models class Student(models.Model): name = models.CharField('姓名', max_length=20, default='') age = models.CharField('年龄', max_length=20, default='') class Book(models.Model): student =

Django基础之Model操作步骤(介绍)

一.数据库操作 1.创建model表 基本结构: #coding:Utf8 from django.db import models class userinfo(models.Model): #如果没有models.AutoField,默认会创建一个id的自增列 name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField() 字段解释: 1.models.AutoField

动态设置django的model field的默认值操作步骤

问题背景 django的model field需要动态设置默认值,具体案例如下: 原始代码如下,model是Application,其中字段ignore_fort的默认值设置为False class Application(TimestampedModel): name = models.CharField(max_length=255, null=True) ignore_fort = models.BooleanField(default=False) 然而现在有这样一个需求:default

Django将项目移动到新环境的操作步骤

一.操作步骤 步骤一:输出虚拟环境中已安装包的名称及版本号并记录到 requirements.txt 文件中 pip freeze > requirements.txt 步骤二:复制工程到新环境,并在项目工程目录(虚拟环境)下,打开cmd窗口 步骤三:将安装包保存到文件夹packages里 pip download -r requirements.txt -d packages 步骤四:创建虚拟环境 python -m venv ./venv 步骤五:将文件导入到虚拟环境中 步骤六:pychar

django的model操作汇整详解

单表操作 增加数据 auther_obj = {"auther_name":"崔皓然","auther_age":1} models.auther.objects.create( **auther_obj ) models.auther.objects.create( auther_name="周雍博", auther_age=4 ) obj = models.auther( auther_name="崔洪艳&quo

Java连接 JDBC基础知识(操作数据库:增删改查)

一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库.比如建立数据库连接.执行SQL语句进行数据的存取操作. JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: 连接到数据库 创

python django 增删改查操作 数据库Mysql

下面介绍一下django增删改查操作: 1.view.py # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.http import HttpResponse from polls.models import Test from django.shortcuts import render # Create your views here. # 解决乱码 import sys reload(sy

django基础之数据库操作方法(详解)

Django 自称是"最适合开发有限期的完美WEB框架".本文参考<Django web开发指南>,快速搭建一个blog 出来,在中间涉及诸多知识点,这里不会详细说明,如果你是第一次接触Django ,本文会让你在感性上对Django有个认识,完成本文操作后会让你有兴趣阅读的相关书籍和文档. 本文客操作的环境,如无特别说明,后续都以下面的环境为基础: =================== Windows 7/10 python 3.5 Django 1.10 ======

SQL Server 2005降级到2000的正确操作步骤分享

以下的文章主要向大家描述的是SQL Server 2005导入到SQL Server 2000的正确操作步骤,以及对其在实际操作中值得我们大家注意的相关事项的具体描述,以下就是文章的具体内容的介绍,望你会有所收获. SQL Server 2005转到2000的步骤: 1. 生成for SQL Server 2000版本的数据库脚本 SQL Server 2005 的manger studio 打开"对象资源管理器"(没有的话按F8), 连接到你的实例 右键要转到SQL Server 2

BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤

bootstrap-fileinput源码:https://github.com/kartik-v/bootstrap-fileinput bootstrap-fileinput在线API:http://plugins.krajee.com/file-input bootstrap-fileinput Demo展示:http://plugins.krajee.com/file-basic-usage-demo 这个插件主要是介绍如何处理图片上传的处理操作,原先我的Excel导入操作使用的是Upl

hibernate框架环境搭建具体步骤(介绍)

一. 概述:hibernate框架是作用于dao层的,实现对数据的持久化保存.通过面向对象的方式操作数据库. 二. hibernate框架的搭建 1.导包 lib目录下的required文件夹下的所有jar包. mysql驱动包. 2.创建数据库于表. 3.创建实体类. 4.创建实体映射文件(以crm练习Customer类为例) 实体类名.hbm.xml 引入约束文件 <?xml version="1.0" encoding="UTF-8"?> <