[django error] Reverse for '~~~' with arguments '('',)' not found. 1 pattern(s) tried: ['~~~/~~~/(?P<~~~.id>[0-9]+)$']
해당 오류는 id값을 찾지 못해서이다
def update(request, post_id):
post = Post.objects.get(id = post_id)
if request.method == 'POST':
post.main_text = request.POST['main_text']
post.create_user = User.objects.get(username = request.user.get_username())
post.update_date = timezone.datetime.now()
post.save()
return redirect(reverse('index'))
return render(request, 'update.html')
해당 값으로 get방식이면 update를 가져오고
post방식이면 글을 수정하는데
글을 수정할 id를 못 찾아서 그런 거다.
이게 알고 보니까
<!--myApp/templates/post.html-->
{% extends 'base.html' %}
{% block content %}
<body>
<form method="POST" action="{% url 'update' post.id %}">
{%csrf_token%}
<textarea cols=40 rows=10 name="main_text"></textarea>
<br>
<br>
<input class="btn btn-dark" type="submit" value="post">
</form>
</body>
{% endblock %}
update를 하여 게시물을 저장한 update.html에서 굳이 action을 설정해 주었기 때문이다.
이미 id를 가져왔는데? 하고 찾을 아이디가 없어서 난 에뤄
<!--myApp/templates/post.html-->
{% extends 'base.html' %}
{% block content %}
<body>
<form method="POST">
{%csrf_token%}
<textarea cols=40 rows=10 name="main_text"></textarea>
<br>
<br>
<input class="btn btn-dark" type="submit" value="post">
</form>
</body>
{% endblock %}
어차피 get방식으로 들어갈 때부터 블로그 id를 가져오니 action을 빼주니 정상 작동하였다.
'에러' 카테고리의 다른 글
django media 이미지 Not Found error (3) | 2020.04.08 |
---|---|
git add 할때 LF will be replaced by CRLF in README.md. (0) | 2020.03.31 |
[django error] Manager isn't accessible via * instances (0) | 2020.03.25 |
Mapped Statements collection does not contain value for (0) | 2020.03.22 |
ImportError: cannot import name 'python_2_unicode_compatible' from 'django.utils.encoding' (0) | 2020.03.16 |