为什么 Django 中的 POST 请求有时有效而其他时间无效? (这几乎是随机的)
Why would POST requests in Django work sometimes and not the other times? (It's almost random)
我有一个 Django CRUD 网络应用程序,它基本上用于向数据库添加值,当页面刷新时,这些值在前端可见,并且有一个按钮可以编辑该条目。它在 90% 的时间里工作得很好。但是会有一个随机的实例,有人使用 UI 添加了一些东西,它被添加到数据库中,但是当刷新时,条目从数据库中消失了!这是我见过的最荒谬的事情。如果代码有问题,它不会永远不会正确添加它。我只是很困惑,为什么它在 90% 的时间里都能很好地增加值,但很少有条目消失的情况。
def index(request, user, created_by):
if request.POST:
print(request.POST)
selected_user = request.POST.get('name_user')
selected_project = request.POST.get('name_project')
print(selected_user)
week_starting = request.POST.get('date')
hours = request.POST.get('hours')
activity = request.POST.get('activity')
selected_tag = request.POST.get('tag')
# check if record already exists for the same user and same week_starting and selected_project
# if not then insert to DB
# else don't insert, say record already exists
if selected_tag == '':
check_if_exists = TABLENAME.objects.filter(username=selected_user,
week_starting=week_starting,
project_id=selected_project, tag_id__isnull=True)
else:
check_if_exists = TABLENAME.objects.filter(username=selected_user,
week_starting=week_starting,
project_id=selected_project,
tag_id=selected_tag)
count = check_if_exists.count()
print("at insert")
print("how many same records already exist: ", count)
if count < 1:
selected_project_id = TABLENAME.objects.only('project_id').get(
project_id=request.POST.get('project'))
print(selected_project)
if selected_tag == '':
TABLENAME.objects.create(username=selected_user, project_id=selected_project_id,
week_starting=week_starting, forecast_hours=hours,
description=activity,
created_on=timezone.now(), created_by=created_by)
add_status = "added - no tag"
else:
TABLENAME.objects.create(toggl_username=selected_user,
project_id=selected_project_id,
week_starting=week_starting, forecast_hours=hours,
description=activity, tag_id=selected_tag,
created_on=timezone.now(), created_by=created_by)
add_status = "added - with tag"
flash_text = 'Record inserted'
print(add_status)
# selected_tag = 0
return render(request, 'hello_v2.html',
{'flash_text': flash_text, 'users': users, 'selected_user': selected_user,
'projects': projects, 'date': date, 'tags': tags,
'selected_tag': selected_tag, 'selected_project': selected_project})
# add if tag is not empty then pass tags like here else don't - do the same thing for ID
else:
flash_text = 'Record already exists'
return render(request, 'hello_v2.html',
{'flash_text': flash_text, 'users': users, 'selected_user': selected_user,
'projects': projects, 'date': date, 'tags': tags, 'selected_tag': selected_tag,
'selected_project': selected_project})
else:
print("Loading page")
print(date)
selected_tag = request.GET.get('tag_id')
return render(request, 'hello_v2.html', {'users': users, 'date': date, 'projects': projects, 'tags': tags, 'selected_tag': selected_tag})
我通过打印它们来跟踪 POST 请求,在条目从数据库中消失的情况下,我看不到打印的 POST 请求...所以我'我真的很困惑
我还有一个编辑方法,允许用户编辑一个条目,有时当用户编辑一个条目然后它消失了,所以也许我在那里有问题?但这只是一些编辑导致的,而不是全部。
你应该这样检查请求。
def index(request, user, created_by):
if request<b>.method == "POST":</b>
print(request.POST)
selected_user = reques</pre>
我有一个 Django CRUD 网络应用程序,它基本上用于向数据库添加值,当页面刷新时,这些值在前端可见,并且有一个按钮可以编辑该条目。它在 90% 的时间里工作得很好。但是会有一个随机的实例,有人使用 UI 添加了一些东西,它被添加到数据库中,但是当刷新时,条目从数据库中消失了!这是我见过的最荒谬的事情。如果代码有问题,它不会永远不会正确添加它。我只是很困惑,为什么它在 90% 的时间里都能很好地增加值,但很少有条目消失的情况。
def index(request, user, created_by):
if request.POST:
print(request.POST)
selected_user = request.POST.get('name_user')
selected_project = request.POST.get('name_project')
print(selected_user)
week_starting = request.POST.get('date')
hours = request.POST.get('hours')
activity = request.POST.get('activity')
selected_tag = request.POST.get('tag')
# check if record already exists for the same user and same week_starting and selected_project
# if not then insert to DB
# else don't insert, say record already exists
if selected_tag == '':
check_if_exists = TABLENAME.objects.filter(username=selected_user,
week_starting=week_starting,
project_id=selected_project, tag_id__isnull=True)
else:
check_if_exists = TABLENAME.objects.filter(username=selected_user,
week_starting=week_starting,
project_id=selected_project,
tag_id=selected_tag)
count = check_if_exists.count()
print("at insert")
print("how many same records already exist: ", count)
if count < 1:
selected_project_id = TABLENAME.objects.only('project_id').get(
project_id=request.POST.get('project'))
print(selected_project)
if selected_tag == '':
TABLENAME.objects.create(username=selected_user, project_id=selected_project_id,
week_starting=week_starting, forecast_hours=hours,
description=activity,
created_on=timezone.now(), created_by=created_by)
add_status = "added - no tag"
else:
TABLENAME.objects.create(toggl_username=selected_user,
project_id=selected_project_id,
week_starting=week_starting, forecast_hours=hours,
description=activity, tag_id=selected_tag,
created_on=timezone.now(), created_by=created_by)
add_status = "added - with tag"
flash_text = 'Record inserted'
print(add_status)
# selected_tag = 0
return render(request, 'hello_v2.html',
{'flash_text': flash_text, 'users': users, 'selected_user': selected_user,
'projects': projects, 'date': date, 'tags': tags,
'selected_tag': selected_tag, 'selected_project': selected_project})
# add if tag is not empty then pass tags like here else don't - do the same thing for ID
else:
flash_text = 'Record already exists'
return render(request, 'hello_v2.html',
{'flash_text': flash_text, 'users': users, 'selected_user': selected_user,
'projects': projects, 'date': date, 'tags': tags, 'selected_tag': selected_tag,
'selected_project': selected_project})
else:
print("Loading page")
print(date)
selected_tag = request.GET.get('tag_id')
return render(request, 'hello_v2.html', {'users': users, 'date': date, 'projects': projects, 'tags': tags, 'selected_tag': selected_tag})
我通过打印它们来跟踪 POST 请求,在条目从数据库中消失的情况下,我看不到打印的 POST 请求...所以我'我真的很困惑 我还有一个编辑方法,允许用户编辑一个条目,有时当用户编辑一个条目然后它消失了,所以也许我在那里有问题?但这只是一些编辑导致的,而不是全部。
你应该这样检查请求。
def index(request, user, created_by):
if request<b>.method == "POST":</b>
print(request.POST)
selected_user = reques</pre>