我对数据支持有疑问。我传入了模板的不同名称的变量。当我发送一个变量时,出现错误:异常类型:MultiValueDictKeyError。
我发送以查看名为btn
,delete
和undo
的变量。
我以这种方式完成了
try:
task = List.objects.get(id=data['undo'])
except:
try:
task = List.objects.get(id=data['delete'])
except.....
那工作正常,但要更好地做到这一点我面临挑战。
有我的看法
def index(request):
if request.method == 'POST':
data = request.POST
type_of = request.POST.get('type')
if data['description']:
new_task = List()
new_task.create_task(data['title'], data['description'], type_of)
else:
return render(request, './index.html', {'context': "error: field cannot be empty"})
if request.method == 'GET':
data = request.GET
try:
task = List.objects.get(id=data['btn'])
for x in task_status:
if task.type_of == task_status[x]:
task.type_of = task_status[x + 1]
break
task.save()
except:
try:
task = List.objects.get(id=data['delete'])
task.delete()
except:
try:
task = List.objects.get(id=data['undo'])
for x in task_status:
if task.type_of == task_status[x]:
task.type_of = task_status[x - 1]
break
task.save()
except:
task_list_back_log, task_list_to_do, task_list_in_progress, task_list_done = return_filter_lists()
return render(request, './index.html',
{'back_log': task_list_back_log, 'to_do': task_list_to_do,
'in_progress': task_list_in_progress,
'done': task_list_done})
但是当我删除try-except块并仅以查看data['undo']
为例时出现错误
异常值:“ btn”
问题是,当我第一次加载模板时,我的数据查询为空... 有什么方法可以检查视图中存在哪个变量并使用它?
答案 0 :(得分:0)
List.objects.filter(id=data['undo']).exists()
根据查询是否找到内容,将返回True或False。
如果该问题涉及检查数据['undo']是否存在,则:
if 'undo' in data:
do_some_magic()
会的。
答案 1 :(得分:0)
task = List.objects.filter(id=data['undo']).first()
返回第一条记录