我试图在SO上查找此特定查询,但找不到。
我是Django的新手,使用的是版本1.10和python 3.4。 对于我在模板中使用它们的复选框。
出于某种原因,我在使用forms.py文件中的复选框小部件时犹豫不决,我认为这会打扰我现有的用户界面(如果我错了请纠正我)。 当我提交表单时,模板会返回我勾选的复选框数的空白引号。
这是我的模特:
class UsrGrpMaster(models.Model):
SrNo =models.IntegerField(unique=True)
UsrGrpID = models.AutoField(primary_key=True)
GrpName = models.CharField(max_length=50)
Purch = models.BooleanField(default=False)
PurchMod = models.BooleanField(default=False)
Sales = models.BooleanField(default=False)
SalesMod = models.BooleanField(default=False)
Stock = models.BooleanField(default=False)
StockMod = models.BooleanField(default=False)
JV = models.BooleanField(default=False)
JVMod = models.BooleanField(default=False)
DelPurch = models.BooleanField(default=False)
DelSales = models.BooleanField(default=False)
DelJV = models.BooleanField(default=False)
class Meta:
db_table = "UsrGrpMaster"
这是我的模板:
<div class="body-set">
<div id="form">
<form class="form-horizontal" method="POST" action="{% url 'creategroup' %}">
<div class="form-group" align="center">
<label class=""><font size="6">Create a New User Group</font></label>{% if errormsg %}<br />
<font size="3" color="#FF0000">{{ errormsg }}</font>{% endif %}
</div>
<div class="form-group">
<label class="control-label col-sm-4" for="text">Name of the User Group:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="grpname" placeholder="Type in the new User Group Name" name="grpname">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4" for="text">Permissions:</label>
<div class="col-sm-5">
<div><strong>Purchase Voucher</strong></div>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="1">View</label>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="2">Edit</label>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="3">Delete</label>
</div><br /><br /><br />
<label class="control-label col-sm-4" for="text"></label>
<div class="col-sm-5">
<div><strong>Sales Voucher</strong></div>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="4">View</label>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="5">Edit</label>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="6">Delete</label>
</div><br /><br /><br />
<label class="control-label col-sm-4" for="text"></label>
<div class="col-sm-5">
<div><strong>Stock</strong></div>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="7">View</label>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="8">Edit</label>
</div><br /><br /><br />
<label class="control-label col-sm-4" for="text"></label>
<div class="col-sm-5">
<div><strong>Journal Voucher / Income-Expense Voucher / Ledgers</strong></div>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="9">View</label>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="10">Edit</label>
<label class="checkbox-inline"><input type="checkbox" name="checks[]" value="11">Delete</label>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-5">
<button type="submit" class="btn btn-primary">Create User Group</button>
</div>
</div>
</form>
</div>
以下是基于类的视图:
class CreateGroup(View):
@never_cache
def get(self, request, *args, **kwargs):
if 'adminusr' in request.COOKIES:
if request.session.get('errormsg', None):
errormsg = request.session['errormsg']
del request.session['errormsg']
else:
errormsg = ''
return render(request, 'adminpage/creategroup.html', {"errormsg": errormsg})
else:
return HttpResponseRedirect("/adminpage/")
def post(self, request, *args, **kwargs):
if request.method == 'POST':
GrpName = request.POST.get('grpname')
chq = request.POST.getlist('checks[]')
print(chq)
value = sninc(UsrGrpMaster, 'SrNo') #increments the sn and stores in DB
if checkduplicates(UsrGrpMaster, 'GrpName', GrpName) is not True:
qs = UsrGrpMaster(SrNo=value, GrpName=GrpName,
Purch=chq[1],
PurchMod=chq[2],
Sales=chq[4],
SalesMod=chq[5],
Stock=chq[7],
StockMod=chq[8],
JV=chq[9],
JVMod=chq[10],
DelPurch=chq[3],
DelSales=chq[6],
DelJV=chq[11]
)
qs.save()
else:
request.session['errormsg'] = "The user group already exists"
return HttpResponseRedirect("/adminpage/adminhome/creategroup/")
return HttpResponseRedirect("/adminpage/adminhome/")
这是浏览器和控制台剪辑。选中9个框并提交显示9个空引号。
template_browser_clipping
console_clipping
我希望表单为我提供复选框的value属性,以便将它们存储在数据库中。请指导我如何实现这一点(使用或不使用forms.py)。
这是Javascript:
$(document).ready(function(){
$('form').submit(function() {
if ($.trim($('input[name="grpname"]').val()) === "") {
$('input[name="grpname"]').css({'background-color' : '#ffe5e5'});
return false;
}
});
$('input').focusin(function() {
$(this).css({'background-color' : '#ffffff'});
});
$('input').blur(function() {
if ($.trim($(this).val()) === "") {
$(this).css({'background-color' : '#ffe5e5'});
}
});
});