我有一个简单的Web应用程序,其中包含3个布尔值字段(复选框)。我创建数据库以保留其值,并设置只能检查其中一个。如果我在Chrome上运行它,它的工作原理就像魅力。
例如,在开始时我已选中第一个复选框:
然后点击第二个
这是我使用Chrome时的正常行为。但是,当我使用Firefox时,它仅适用于首次更改状态,然后可以选中所有复选框。我检查了数据库,在数据库中,我一直都有很好的值,但是firefox显示错误的值。
html
{% for object in objects %}
{% if object.is_active %}
<input id="active" type="checkbox" checked="checked" onclick="changee({{ object.id }})">
{% else %}
<input id="active" type="checkbox" onclick="changee({{ object.id }})">
{% endif %}
{% endfor %}
views.py schedule_id是object.id我通过changee函数传入html
if request.method == 'POST':
objects = TimeTable.objects.all()
if schedule_id is not None:
schedule_value_change = TimeTable.objects.get(pk=schedule_id)
schedule_rest = TimeTable.objects.exclude(pk=schedule_id)
if schedule_value_change.is_active:
schedule_value_change.is_active = False
else:
schedule_value_change.is_active = True
for schedulerest in schedule_rest:
schedulerest.is_active = False
schedulerest.save()
schedule_value_change.save()
return redirect('schedule')
有人可以告诉我我在做什么错吗?
此外,我还补充说,当我希望登录Chrome Arter Change复选框时,会得到:
[13/Dec/2018 14:42:53] "POST /schedule/ HTTP/1.1" 302 0
[13/Dec/2018 14:42:53] "GET /schedule/ HTTP/1.1" 200 7992
[13/Dec/2018 14:42:53] "GET /schedule/ HTTP/1.1" 200 7992
但是当我在Firefox上运行时,我会得到
[13/Dec/2018 14:43:23] "POST /schedule/ HTTP/1.1" 302 0
[13/Dec/2018 14:43:23] "GET /schedule/ HTTP/1.1" 200 7992
[13/Dec/2018 14:43:23] "GET /schedule/ HTTP/1.1" 200 7992
[13/Dec/2018 14:43:23] "GET /static/css/home.css HTTP/1.1" 304 0
[13/Dec/2018 14:43:23] "GET /static/js/jquery.js HTTP/1.1" 304 0
[13/Dec/2018 14:43:23] "GET /static/css/schedule.css HTTP/1.1" 304 0
[13/Dec/2018 14:43:23] "GET /static/images/logout.png HTTP/1.1" 304 0
Not Found: /favicon.ico
[13/Dec/2018 14:43:23] "GET /favicon.ico HTTP/1.1" 404 2586
很奇怪的是,它一直处于静态状态,并且正在寻找favicon.ico?
P.S在Edge上也可以工作,只有Firefox被延迟
答案 0 :(得分:0)
这可能只是一个刷新问题。如果该页面上没有任何可能受到影响的内容,请在单击后尝试在动态页面刷新/重新加载中进行编码,以查看是否可行。如果有的话,它将帮助您进行故障排除。