我的应用程序内部的模型上有一些布尔字段。它们默认为false,我想编写一个在true和false之间切换它们的函数。
然后在我的模板上,我希望该功能基于复选框进行操作。然后允许复选框显示检查是否为真,如果为假则不检查。
我只是不确定我是否应该使用网址和视图执行此操作,还是将其作为表单?
这是我到目前为止所得到的:
models.py
while(in.hasNextLine()){
String str = in.nextLine();
if(str.trim().equals("done"){
break;
}else{
String[] arr = str.split("\\s+");
//then do whatever you want to do
}
}
views.py
class CarrierCompany(models.Model):
rgn = models.BooleanField(default=False)
van = models.BooleanField(default=False)
power_only = models.BooleanField(default=False)
step_deck = models.BooleanField(default=False)
flatbed = models.BooleanField(default=False)
reefer = models.BooleanField(default=False)
hotshot = models.BooleanField(default=False)
specialized = models.BooleanField(default=False)
def rgn_equipment(self):
if self.rgn == False:
self.rgn = True
else:
self.rgn = False
self.save()
urls.py
def rgn_equipment_toggle(request, pk):
carrier_company = get_object_or_404(CarrierCompany, pk=pk)
carrier_company.rgn_equipment()
return redirect('accounts:carrier_company_detail', pk=pk)
模板
urlpatterns = [
url(r'rgn_equipment_toggle/(?P<pk>\d+)/$', rgn_equipment_toggle, name='rgn_equipment_toggle'),
]
我可以使用按钮完美地工作,这是一个选项。我只是不确定如何使用复选框完成此操作。我假设我需要操作并显示选中/未使用Jquery检查复选框,所以我也开始使用一些代码,但我对jquery非常新。
答案 0 :(得分:0)
几个小时后我解决了这个问题。傻我。我不确定这是否是最佳方式,因为它包含模板内部的逻辑,但这就是我现在解决的问题。
{% if carriercompany.rgn == True %}
<input type="checkbox" data-target="{% url 'accounts:rgn_equipment_toggle' pk=carriercompany.pk %}" checked />
{% else %}
<input type="checkbox" data-target="{% url 'accounts:rgn_equipment_toggle' pk=carriercompany.pk %}" />
{% endif %}
上面的相同脚本允许您切换
<script type="text/javascript">
$(function(){
$('input[type="checkbox"]').change(function(){
var item = $(this);
if (item.is(":checked")) {
window.location.href = item.data("target")
}else {
window.location.href = item.data("target")
}
});
});
</script>