사용자의 친구 목록에 친구를 추가하는 기능을 만들고 있습니다. 사용자가 버튼을 클릭하면 우정이 만들어지고 페이지는 사용자가 있던 곳으로 리디렉션됩니다. 예를 들어 포럼의 첫 번째 페이지에 다른 사용자를 추가하고 싶다면 "친구 추가"버튼을 클릭 한 후 같은 페이지에 있어야합니다.Django - 이전 페이지로 리디렉션
이것은 내가 그것을 설계하는 방법입니다
def to_post_page(request, post_id, page_nr):
post = get_object_or_404(Post, id=post_id)
form = CommentForm()
comments = Comment.objects.filter(post=post)
return render(request, 'post/post.html', {
'post': post,
'form': form,
'comments': comments,
'page_nr': int(page_nr),
'user': request.user,
'path': request.path,
})
그리고 템플릿 : 나는 포럼의 모든 페이지로 리디렉션 할 때 , 나는 페이지에 변수로 현재 페이지의 경로를 통과
<input type="button" class="btn btn-info" value="Add Friend" onclick="location.href='{% url 'user:add_friend' to_friend_id=post.poster.id path=path %}';">
@login_required(login_url='user:login')
def friend_add(request, to_friend_id, path):
friend = get_object_or_404(User, id=to_friend_id)
if friend == request.user:
return HttpResponseRedirect(request.path)
friendship = FriendShip(
from_friend=request.user,
to_friend=friend
)
try:
friendship.save()
except IntegrityError:
return path
finally:
return path
내 URL은 다음과 같습니다
url(r'^add_friend/(?P<to_friend_id>[0-9]+/)/(?P<path>[\w\-]+)/$', views.friend_add, name="add_friend"),
그것은 예외가 발생 :
키워드 인수 '{'to_friend_id ': 1,'path ':'/ forum/1/0/post '}'이 (가) 없으면 'add_friend'에 대해 반대입니다. 1 패턴을 시도했습니다 : [ '사용자/add_friend/(? P [0-9] + /)/(? P [\ w \ -] +) $']
예외가 제기 된 이유와 해결책은 무엇입니까? \ w는 문자열 매개 변수 용으로 설계되지 않았습니까?
그리고 이전 페이지로 리디렉션하는 방법은별로 똑똑하지 않다고 생각합니다. 어떤 사람이 더 좋은 방법이 있습니까?
정말 고마워요!
그는 양식을 사용하고 있기 때문에 질문은 this question으로 중복되지 않지만 나는 아닙니다. POST를받을 방법이 없습니다.
[POST 요청 후 장고에서 이전 페이지로 리디렉션하는 방법] 가능한 복제본 (https://stackoverflow.com/questions/35796195/how-to-redirect-to-previous-page-in-django-after- post-request) –
응답은 다음을 반환합니다. ==>'HttpResponseRedirect (request.META.get ('HTTP_REFERER', '/'))' –
@mohammedqudah 다시 대답 할 수 있습니까? 나는 너의 대답을 받아 들일 것이다! –