[英]How do I redirect to the created page after I submitted the form Django
I'm trying to redirect to the created page after I've filled out and submitted a form.填写并提交表格后,我试图重定向到创建的页面。 I have gotten it to work on the update form but not the create form.
我已经让它在更新表单上工作,而不是在创建表单上工作。 How do i do this?
我该怎么做呢?
Here's what I have so far.这是我到目前为止所拥有的。 Let me know if you need more details and code
如果您需要更多详细信息和代码,请告诉我
views.py视图.py
@login_required(login_url='login')
def createRoom(request):
form = RoomForm()
topics = Topic.objects.all()
if request.method == 'POST':
topic_name = request.POST.get('topic')
topic, created = Topic.objects.get_or_create(name=topic_name)
Room.objects.create(
host=request.user,
topic=topic,
name=request.POST.get('name'),
assigned=request.user,
status=request.POST.get('status'),
priority=request.POST.get('priority'),
type=request.POST.get('type'),
description=request.POST.get('description'),
)
return render('room', pk=room.id)
context = {'form': form, 'topics': topics, 'room': room}
return render(request, 'room/room_form.html', context)
But this throws this error但这会引发此错误
traceback追溯
Traceback (most recent call last):
File "C:\Users\mikha\issue_env\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
File "C:\Users\mikha\issue_env\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\mikha\issue_env\lib\site-packages\django\contrib\auth\decorators.py", line 23, in _wrapped_view
return view_func(request, *args, **kwargs)
File "C:\Users\mikha\issuetracker\base\views.py", line 68, in createRoom
return render('room', pk=room.id)
Exception Type: AttributeError at /create-room/
Exception Value: 'function' object has no attribute 'id'
While you have created a new Room
object, you haven't assigned it to room
.当您创建了一个新
Room
object 时,您还没有将它分配给room
。
Try尝试
room = Room.objects.create(
Your create room function should look like this您创建的房间 function 应该如下所示
@login_required(login_url='login')
def createRoom(request):
form = RoomForm()
topics = Topic.objects.all()
if request.method == 'POST':
topic_name = request.POST.get('topic')
topic, created = Topic.objects.get_or_create(name=topic_name)
room = Room.objects.create(
host=request.user,
topic=topic,
name=request.POST.get('name'),
assigned=request.user,
status=request.POST.get('status'),
priority=request.POST.get('priority'),
type=request.POST.get('type'),
description=request.POST.get('description'),
)
room.save()
return redirect("created-room-view-function")
context = {'form': form, 'topics': topics, 'room': room}
return render(request, 'room/room_form.html', context)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.