Django 2021年最新版教程21数据库查询 model 多条数据 queryse转dict字典 返回渲染到前端

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 2021年最新版教程21数据库查询 model 多条数据 queryse转dict字典 返回渲染到前端相关的知识,希望对你有一定的参考价值。

 

model.objects.filter()、model.objects.all()等返回的是queryset格式,是对象的列表list

render需要接收的是dict格式

所以需要将queryset转成dict,但是不能直接转,会报错

'QuerySet' object has no attribute '_meta'

可以将queryset list循环,对其中的每个对象使用model_to_dict转换

# 设置预约信息页面
def admin_setting_booking_info(request):
    system_configurations = SystemConfiguration.objects.filter(Q(configuration_name='allow_booking_date_start') | Q(configuration_name='allow_booking_date_end') | Q(configuration_name='days_showed_at_most_one_time') | Q(configuration_name='maximum_number_per_day'))

    context = {}
    for system_configuration in system_configurations:
        temp = model_to_dict(system_configuration)
        print(temp)
        context[temp['configuration_name']] = temp['configuration_value']

    print(context)
    return render(request, './adminWeb/setting_booking_info.html', context)

<div class="col-md-10">
                        <div class="form-group">
                          <label class="bmd-label-floating">可预约的开始日期</label>
                          <input type="date" class="form-control" id="allow_booking_date_start" value="{{ allow_booking_date_start }}" style='text-indent:140px;'>
                        </div>
                      </div>
                      <div class="col-md-10">
                        <div class="form-group">
                          <label class="bmd-label-floating">可预约的截止日期</label>
                          <input type="date" class="form-control" id="allow_booking_date_end" value="{{ allow_booking_date_end }}" style ='text-indent:140px;'>
                        </div>
                      </div>
                      <div class="col-md-10">
                        <div class="form-group">
                          <label class="bmd-label-floating">一次最多展示多少天(大于等于1的整数)</label>
                          <input type="number" class="form-control" id="days_showed_at_most_one_time" value="{{ days_showed_at_most_one_time }}" style ='text-indent:140px;'>
                        </div>
                      </div>
                      <div class="col-md-10">
                        <div class="form-group">
                          <label class="bmd-label-floating">每日最多可预约人数</label>
                          <input type="number" class="form-control" id="maximum_number_per_day" value="{{ maximum_number_per_day }}" style ='text-indent:140px;'>
                        </div>
                      </div>

 

以上是关于Django 2021年最新版教程21数据库查询 model 多条数据 queryse转dict字典 返回渲染到前端的主要内容,如果未能解决你的问题,请参考以下文章

Django 2021年最新版教程19数据库查询 model filter 条件或or

Django 2021年最新版教程27数据库model 查询2个日期范围内的所有日期

Django 2021年最新版教程20python for循环遍历queryset

Django 2021年最新版教程17数据库操作 models 存在更新 不存在新建update_or_create

Django 2021年最新版教程35python+request+unittest 对Django接口进行测试

Django 2021年最新版教程10数据库修改更新操作