django_day11_项目相关
django_day11_项目相关
新增和编辑
路由
url(r'^category_add/$', views.category_change, name='category_add'),
url(r'^category_edit/(\d+)$', views.category_change, name='category_edit'),
视图
def category_change(request, pk=None):
obj = models.Category.objects.filter(pk=pk).first() # pk=None obj=>None
form_obj = CategoryForm(instance=obj)
if request.method == 'POST':
form_obj = CategoryForm(request.POST, instance=obj)
if form_obj.is_valid():
form_obj.save()
return redirect('category_list')
title = '编辑分类' if pk else '新增分类'
return render(request, 'form.html', {'form_obj': form_obj, 'title': title})
模板
{% extends 'dashboard.html' %}
{% block main %}
<h1>{{ title }}</h1>
<form class="form-horizontal" method="post" action="" novalidate>
{% csrf_token %}
{% for field in form_obj %}
<div class="form-group {% if field.errors %}has-error{% endif %}">
<label for="{{ field.id_for_label }}"
class="col-sm-2 control-label">{{ field.label }}</label>
<div class="col-sm-8">
{{ field }}
<span class="help-block"> {{ field.errors.0 }} </span>
</div>
</div>
{% endfor %}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">保存</button>
</div>
</div>
</form>
{% endblock %}
Q
q = Q()
# Q(Q(title__contains=query)|Q(detail__content__contains=query))
q.connector = 'OR'
q.children.append(Q(title__contains=query))
q.children.append(Q(detail__content__contains=query))
Q(title__contains=query) # Q(('title__contains',query))
def get_query(request, field_list):
# 传入一个列表['title','detail__content'] ,返回一Q对象
query = request.GET.get('query', '')
q = Q()
# Q(Q(title__contains=query)|Q(detail__content__contains=query))
q.connector = 'OR'
for field in field_list:
q.children.append(Q(('{}__contains'.format(field),query)))
# q.children.append(Q(detail__content__contains=query))
return q
解决分页保留查询参数的方法
from django.http.request import QueryDict
request.GET._mutable = True
request.GET['page'] = 1
request.GET.copy() # 返回一个可编辑的深拷贝
request.GET.urledncode() # page=1&aa=111
django_day11_项目相关的更多相关文章
- 根据funID,personID获取最新规划包项目相关信息
1.定义:根据funID,personID获取最新规划包项目相关信息(code projecttype(阶段) Pname(code+name) projectID) 项目表tbl_cfg_Proje ...
- django_day10_项目相关
django_day10_项目相关 展示数据的方法 数据对象obj 普通字段 obj.字段名 ====> 数据库该字段的值 带choices参数的 obj.字段名 ====> 数据库该字段 ...
- django_day09_项目相关
django_day09_项目相关 展示数据: 给模板一个querySet对象列表,循环出对象列表obj 普通字段 obj.字段名 ----> 数据库中的数据 外键 obj.外键 ------- ...
- django_day08_项目相关
django_day08_项目相关 定义数据库表 from django.db import models # Create your models here. class User(models.M ...
- IDEA 从SVN检出项目相关配置
1.新建好一个工程,然后通过SVN检出项目 2.检出后一般tomcat的环境是配置好的,点击上方Project Structure按钮,弹出窗体,查看Project项,一般没问题,如果要配置就配置Pr ...
- IntelliJ IDEA 项目相关的几个重要概念介绍
必备材料介绍 IntelliJ IDEA 对其他 IDE 转过来的用户有特别优待,对其专门整理了非常棒的资料,还请其他 IDE 过来的用户抽时间查看,会有很大帮助:Eclipse 用户可以看:http ...
- Java面试06|项目相关介绍
1.明确你的项目到底是做什么的,有哪些功能 广告投放机:项目主要是为移动端有针对性的进行广告展示. 媒体管理平台SSP:为媒体端实现多种变现途径 (1)广告投放机中关于广告检索与排序的功能 1.广告检 ...
- 预置第三方apk到MTK项目相关问题总结
目前5.0之后项目预置方式通用步骤为: 建立apk文件夹; 置目标apk到该文件夹下; 解压缩apk查看是否包含lib/文件夹(apk项目是否包含lib库文件); 在该文件夹下编写Androi ...
- Linux 首先基本包安装(vim啊什么的),源,源优化,项目架构介绍, (LNMuWsgi)Django项目相关软件mysql,redies,python(相关模块)安装配置测试
内容 补充: 查看已启动服务的端口 netstat -tulnp |grep (方式1) ss -tulnp|grep (方式2) 前期铺垫: . Linux要能上网 . 掌握Linux软件包安装方法 ...
随机推荐
- VMware Workstation 虚拟机安装教程
一.介绍篇 VMware Workstation 16 Pro是VMware(威睿公司)于2021年最新发布的一代虚拟机软件,软件的中文名是"VMware 工作站 16 专业版". ...
- 7.脚本三剑客之awk
脚本三剑客之awk 目录 脚本三剑客之awk awk介绍 awk工作原理 awk命令格式 awk基础用法 awk命令高级用法 date命令使用 awk介绍 AWK 是一种处理文本文件的语言,是一个强大 ...
- JS:对象调方法1
找调用者 1.如果有this,就先看this在哪个函数中,就是离this最近的function,没有就是window 2.找到函数后,辨别哪个是调用者 例1: 点击查看代码 function fn() ...
- exe4j下载和使用
https://blog.csdn.net/weixin_44678104/article/details/101015065
- 以脚本形式运行python库
技术背景 当我们尝试运行python的帮助文档时,会看到如下这样的一个说明: $ python3 -h usage: python3 [option] ... [-c cmd | -m mod | f ...
- java-Stream的总结
JAVA中的Stream 01.什么是Stream Stream是JDK8中引入,Stream是一个来自数据源的元素序列并支持聚合操作.可以让你以一种声明的方式处理数据,Stream 使用一种类似用 ...
- docker for window WSL 2 installation is incomplete 错误,导致docker无法启动
1.错误截图如下: 2.错误原因:由于wsl2版本旧,根据提示让我们手动更新包,去微软官网下载最新wsl2后,安装完成重启即可解决. 3.下载地址:download地址
- java。多态
package Demo.oop.APP.Demo05; public class application { public static void main(String[] args) { //一 ...
- elasticsearchTemplate that could not be found
***************************APPLICATION FAILED TO START*************************** Description: Metho ...
- 翟佳:高可用、强一致、低延迟——BookKeeper的存储实现
分享嘉宾:翟佳 StreamNative 联合创始人 编辑整理:张晓伟 美团点评 出品平台:DataFunTalk 导读:多数读者们了解BookKeeper是通过Pulsar,实际上BookKeepe ...