博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Django models方法的区别及转化json方式(get、filter、all、values)

https://blog.csdn.net/weixin_42657158/article/details/101454999?utm_medium=distribute.pc_relevant.none-task-blog-title-7&spm=1001.2101.3001.4242

django models方法的区别(get、filter、all、values)

get

  1. 代码:clock_log_models.Clock.objects.get(clock_id=1)
  2. 返回值:Clock object (1)
  3. 返回类型:<class 'clock_log.models.Clock'>
  4. 结果:返回一个对象,如果所查询记录不存在或多于两条就会报错
  5. 转换json方式
from django.forms.models import model_to_dict
data = model_to_dict(data)
  • 1
  • 2

filter

  1. 代码:clock_log_models.Clock.objects.filter(clock_id=1)
  2. 返回值:<QuerySet [<Clock: Clock object (1)>]>
  3. 返回类型:<class 'django.db.models.query.QuerySet'>
  4. 结果:返回一个对象列表,如果记录不存在就会返回<QuerySet []>
  5. 转换json方式
data = list(data.values())
  • 1

all

  1. 代码:clock_log_models.Clock.objects.all()
  2. 返回值:<QuerySet [<Clock: Clock object (1)>]>
  3. 返回类型:<class 'django.db.models.query.QuerySet'>
  4. 结果:返回对象的所有实例
  5. 转换json方式
data = list(data.values())
  • 1

values

  1. 代码:clock_log_models.Clock.objects.values(clock_id=1)
  2. 返回值:<QuerySet [{'clock_id': 1, 'clock_time': datetime.date(2019, 9, 24), 'on_duty_time': datetime.datetime(2019, 9, 24, 9, 18, 23, 659317, tzinfo=<UTC>), 'on_duty_status': True, 'off_duty_time': datetime.datetime(2019, 9, 24, 9, 18, 23, 659317, tzinfo=<UTC>), 'off_duty_status': True, 'user_info_id': '1234'}]>
  3. 返回类型:<class 'django.db.models.query.QuerySet'>
  4. 结果:可以指定查询的字段