python - 通过在 html 中使用多个复选框,我应该如何在 django 中获取数据并存储在数据库中?
问题描述
我在 html 中创建多个复选框,现在我想获取这些数据并将其存储在数据库中。我使用 MySQL 作为数据库,我使用 django 中的 django-multiselectfield( django-multiselectfield ) 库在 django 中创建复选框。
模型.py 文件
from multiselectfield import MultiSelectField
from django.db import models
class Teacher(models.Model):
id=models.AutoField(primary_key=True)
SCHOOL_BOARD_CHOICES = [
('State', 'State'),
('CBSE', 'CBSE'),
('ICSE', 'ICSE'),
]
school_board = MultiSelectField(choices=SCHOOL_BOARD_CHOICES, blank=True, null=True)
.html 文件
<form role="form" action="{% url 'register_save' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
<label for="username">Username</label>
<input type="text" class="form-control" name="username" id="username" placeholder="Enter username">
</div>
<div class="form-group">
<label for="fname">First Name</label>
<input type="text" class="form-control" name="fname" id="fname" placeholder="Enter your first name">
</div>
<div class="form-group">
<label for="lname">Last Name</label>
<input type="text" class="form-control" name="lname" id="lname" placeholder="Enter your last name">
</div>
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" name="email" id="email" aria-describedby="emailHelp"
placeholder="Enter email">
</div>
<div class="form-group">
<label for="pass">Password</label>
<input type="password" class="form-control" name="pass" id="pass" placeholder="Password">
</div>
<div class="form-group">
<label for="cpass">Confirm Password</label>
<input type="password" class="form-control" name="cpass" id="cpass" placeholder="Confirm Password">
</div>
<div class="form-group">
<label for="category">Choose Category</label>
<select class="form-control" id="category" name="category">
<option>School</option>
<option>College</option>
<option>Engineering</option>
<option>Professional</option>
</select>
</div>
<p>Class(es) you teach</p>
<div style="margin-top: 0.5px;" class="form-group form-check">
<input type="checkbox" class="form-check-input" name="school_class" id="jrkg">
<label class="form-check-label" for="school_class">Jr. Kg</label><br>
<input type="checkbox" class="form-check-input" name="school_class" id="srkg">
<label class="form-check-label" for="school_class">Sr. Kg</label><br>
<input type="checkbox" class="form-check-input" name="school_class" id="first">
<label class="form-check-label" for="school_class">I</label><br>
<input type="checkbox" class="form-check-input" name="school_class" id="secind">
<label class="form-check-label" for="school_class">II</label><br>
<input type="checkbox" class="form-check-input" name="school_class" id="third">
<label class="form-check-label" for="school_class">III</label><br>
</div>
<div class="form-group">
<label for="profile_pic">Profile Pic</label>
<input type="file" class="form-control-file" name="profile_pic" id="profile_pic">
</div><br>
<button type="submit" class="btn btn-primary">Register</button>
</form>
视图.py 文件
def register(request):
return render(request, "register.html")
def register_save(request):
if request.method!="POST":
return HttpResponse("Method Not Allowed")
else:
username=request.POST.get("username")
first_name=request.POST.get("fname")
last_name=request.POST.get("lname")
email=request.POST.get("email")
password=request.POST.get("pass")
# confirm_password=request.POST.get("cpass")
category=request.POST.get("category")
school_class=request.POST.get("school_class")
profile_pic=request.FILES["profile_pic"]
try:
user=CustomUser.objects.create_user(username=username,password=password,email=email,first_name=first_name, last_name=last_name,user_type=1)
user.teacher.i_will_teach_for=category
user.teacher.school_class=school_class
user.teacher.profile_pic=profile_pic
user.save()
messages.success(request,"Successfully Created The Account")
return HttpResponseRedirect(reverse("register"))
except Exception as e:
messages.error(request, f"Failed to register. Error{e}")
return HttpResponseRedirect(reverse("register"))
当我保存数据时,正在存储其他字段数据,但我不知道如何存储复选框数据。有人可以指导一下吗?
解决方案
推荐阅读
- excel - 使用 Powerquery 从 Excel 缩进中提取层次结构
- python - 如何通过设置Excel单元格中的文本颜色?
- unity3d - 为什么统一跳过我的开始屏幕场景?
- c# - 如何在 Linux 上的 UriBuilder 中使用文件路径
- visual-studio-2013 - “无法找到包源 vsupdate_KB2829760”Visual Studio 2013 终极更新 5
- python - Django 管理员,在自定义视图中找不到页面
- c# - Azure 异常检测器与 C# 第 2 部分
- html - 将容器宽度扩展到适合内容之外
- javascript - vue-grid-layout 根据图片允许大小拖拽
- sql - (SQL Server 触发器)无法绑定多部分标识符