if
request.method ==
'GET'
:
tags = TagModel.objects.all()
return
render(request,
'books_add.html'
, {
'tags'
: tags})
elif
request.method ==
'POST'
:
title = request.POST.get(
'title'
,
None
)
content = request.POST.get(
'content'
,
None
)
blogModel = BlogModel(title=title, content=content, author=AuthorModel.objects.get(id=
1
))
blogModel.save()
tags = request.POST.getlist(
'tags'
)
for
tag
in
tags:
blogModel.tag.add(tag)
return
HttpResponseRedirect(
'book_add'
)
else
:
return
HttpResponse(
u'是不被处理的请求方式'
)
<div class="form-group">
<label class="col-sm-2 control-label">标签</label>
<div class="col-sm-9">
{% for tag in tags %}
<label class="checkbox-inline">
<input value="{{ tag.id }}" type="checkbox" name="tags"/>{{ tag.name }}
</label>
{% endfor %}
</div>
</div>
-
3、进入编辑页面,先获取全部的复选框及选中的
id
def edit(request, blog_id):
tags = TagModel.objects.all()
blogModel = BlogModel.objects.filter(id=blog_id).first()
check_tag = blogModel.tag.all()
check_id = [int(x.id) for x in check_tag]
print check_id
return render(request, 'books_edit.html', {'tags': tags, 'check_id': check_id})
<div class="form-group">
<label class="col-sm-2 control-label">标签</label>
<div class="col-sm-9">
{% for tag in tags %}
{% if tag.id in check_id %}
<label class="checkbox-inline">
<input value="{{ tag.id }}" type="checkbox" name="tags" checked="checked"/>{{ tag.name }}
</label>
{% else %}
<label class="checkbox-inline">
<input value="{{ tag.id }}" type="checkbox" name="tags"/>{{ tag.name }}
</label>
{% endif %}
{% endfor %}
</div>
</div>
二、
ajax
提交的时候注意要把复选框转换字符串提交
$('#btn').on('click', function (e) {
var hobby = [];
$('#hobby-group').find('input[type=checkbox]').each(function () {
if ($(this).prop("checked")) {
var hobbyId = $(this).val();
hobby.push(hobbyId);
console.log(hobby);
$.ajax({
'url': '/ajaxpost/',
'method': 'post',
'data': {
'username': $('.username').val(),
'hobby': hobby
'traditional': true,
'beforeSend': function (xhr, settings) {
var csrftoken = ajaxpost.getCookie('csrftoken');
xhr.setRequestHeader('X-CSRFToken', csrftoken);
'success': function (data) {
console.log(data);
@require_http_methods(['POST'])
def ajaxpost(request):
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data.get('username', None)
# 获取复选框的值
hobby = request.POST.getlist('hobby')
print '*' * 100
print hobby
print '*' * 100
return HttpResponse(u'成功')
else:
return HttpResponse(u'验证错误')
一、查询数据库遍历所有的复选框1、python查询数据库所有的tag# 新增文章def add(request): if request.method == 'GET': tags = TagModel.objects.all() return render(request, 'books_add.html', {'tags': tags}) el
大家好,我想用
django在后台
中获取前台从
checkbox中传过来的值,判断选
中与未选
中,请问用什么方法,最好好个例子,谢谢
====================
HTML code
Django的forms和models一样很牛逼。他有两种功能,一是生成form表单,还有就是form表单的验证。
这里主要说一下生成form表单时经常用到的需要设置 初始值 / 默认值 的情况。
1. 前端在展示checkbox时,希望设置一个默认选中的选项。如下图:
先来看一下form是如何定义的:
也就是说我们要在前端生成页面的时候,让他把2那一项选中,要怎么做呢?
方法一...
自用运维平台的权限系统中有涉及到一个用户管理的功能,其中包含了用户的角色修改,用户和角色是多对多的关系,前端编辑界面的角色展示为了减少更新麻烦,采用动态从后端获取角色列表,这样后端修改也不需要前端去做更新,管理界面的配置用户角色的地方需要用到复选框,因为是多对多,这里用js去完成修改后赋值到初始字段中,使后端可以轻易的读取,
前端用户管理界面
点击编辑按钮,弹出对应的用户信息,这里是之前写的如何给子页面赋值
可以看到这里的角色是可以多选的,而且这些选项是动态从后端获取的。
动态获取角色(获取复选框).
# 复选 多选 模型
class Matching(models.Model):
title = models.CharField(verbose_name='房屋配套', max_length=10, help_text='不能超多10个字')
class Meta:
verbose_name_plural = "配套多选"
###################################
Django 中,html 页面通过 form 标签来传递表单数据。
对于复选框信息,即 checkbox 类型,点击 submit 后,数据将提交至 view 中的函数。
我们通过request.POST.get() 函数来获取来自 html 页面的值,但是该函数只能 get 到选中的最后一个值。
因此想要传递选中的多个值,需要用 request.POST.getlist() 函数
该函数返回一个列表,可通过迭代来获取列表中每一项的值。
补充知识:解决checkbox复选框选中传值,不选中不传值的方案
解决checkbox复选框选中传值,不选中不传值的方案
问题描述:
一个form表单中的结
要在Visual Studio中开始使用Django Web框架,需要按照以下步骤操作:
1. 安装Python和Django:在Windows上安装Python和Django很简单,您只需要下载Python并按照说明进行安装,然后使用pip安装Django。
2. 创建Django项目:在Visual Studio中创建Django项目很容易,只需选择“Python Web”模板,然后选择“Django Web Project”即可。
3. 配置Django项目:在创建Django项目后,需要在项目设置中配置Django。打开项目设置,选择“Python环境”并指定Python解释器路径,然后在“启动配置”中选择“Django”和“manage.py runserver”。
4. 开始编写Django应用程序:在Visual Studio中,您可以使用“Django Web应用程序”模板来创建Django应用程序。可以使用Visual Studio的强大功能编写Django应用程序。
5. 运行Django应用程序:在Visual Studio中,您可以使用调试器来运行Django应用程序。您只需点击“调试”按钮即可启动Django服务器并运行应用程序。
6. 部署Django应用程序:在Visual Studio中,您可以使用“Python Web部署”工具来部署Django应用程序。该工具可以将Django应用程序打包为Azure Web应用程序或Azure函数应用程序。