how do i add primary keys of 2 different models of post model and comment model in the same url of editing comments
when im adding 2 int pks in the same url it shows an error and when im giving 1 custom name then it doesnt work
views.py
class EditCommentView(UpdateView):
model = Comment
form_class = EditCommentForm
template_name = "edit_comment.html"
urls.py
urlpatterns = [
path("post/<int:pk>/comments/", login_required(CommentsView.as_view(), login_url='signin'), name="comments"),
path("post/<int:pk>/comments/add/", login_required(AddCommentView.as_view(), login_url='signin'), name="add-comment"),
path("post/<int:pk>/comments/<int:pk>/edit/", login_required(EditCommentView.as_view(), login_url='signin'), name="edit-comment"),
]
template
{% extends "base.html" %}
{% block content %}
<section class="text-gray-600 body-font overflow-hidden">
<div class="container px-5 py-24 mx-auto">
<div class="flex flex-col text-center w-full mb-12">
<h1 class="sm:text-3xl text-2xl font-medium title-font mb-4 text-gray-900">Comments</h1>
<p class="lg:w-2/3 mx-auto leading-relaxed text-base">
<a class="text-indigo-500 inline-flex items-center mt-4" href="{% url 'add-comment' post_id %}">Add Comment
</a>
</p>
</div>
<div class="-my-8 divide-y-2 divide-gray-100">
{% for comment in object_list %}
<div class="py-8 flex flex-wrap md:flex-nowrap">
<div class="md:w-64 md:mb-0 mb-6 flex-shrink-0 flex flex-col">
<!-- <span class="font-semibold title-font text-gray-700">CATEGORY</span> -->
<span class="mt-1 text-gray-500 text-sm">{{comment.date_created}}</span>
</div>
<div class="md:flex-grow">
<h2 class="text-2xl font-medium text-gray-900 title-font mb-2">{{comment.user.username}}</h2>
<p class="leading-relaxed">{{comment.body}}</p>
<a class="text-indigo-500 inline-flex items-center mt-4" href="{% url 'edit-comment' post_id comment.id %}"><svg xmlns="http://www.w3.org/2000/svg"
width="16" height="16" fill="currentColor" class="bi bi-pencil-square" viewBox="0 0 16 16">
<path
d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z" />
<path fill-rule="evenodd"
d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z" />
</svg>
</a>
<a class="text-indigo-500 inline-flex items-center mt-4 ml-3"><svg
xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
class="bi bi-archive-fill" viewBox="0 0 16 16">
<path
d="M12.643 15C13.979 15 15 13.845 15 12.5V5H1v7.5C1 13.845 2.021 15 3.357 15h9.286zM5.5 7h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1zM.8 1a.8.8 0 0 0-.8.8V3a.8.8 0 0 0 .8.8h14.4A.8.8 0 0 0 16 3V1.8a.8.8 0 0 0-.8-.8H.8z" />
</svg>
</a>
</div>
</div>
{% endfor %}
</div>
</div>
</section>
{% endblock %}
You can't have two URL variables with the same name, in this case 'pk'
- but when you change the name to something else, the form doesn't recognise the new name. Because your form is editing the comment, I would suggest changing the name of the post PK because you don't need to pass that into the form.
path("post/<int:post_pk>/comments/<int:pk>/edit/"