Обратный для ‘edit’ с аргументами ‘(12,)’ не найден. попробовано 1 шаблон (ы): [‘edit $’]

#python #html #django

#python #HTML #django

Вопрос:

В views.py

 def index(request):
    if request.method == "GET":    
        posts = Post.objects.all().order_by('-id')
        allpost = True

        paginator = Paginator(posts, 5) # Show 5 posts per page.

        page_number = request.GET.get('page')
        page_obj = paginator.get_page(page_number)

        return render(request, "network/index.html",{
            "AllPost" : allpost,
            "page_obj" : page_obj,
        })

def edit(request,post_id):
    if request.method == "POST":
        post = Post.objects.get(id=post_id)
        content = request.POST["textarea"]
        post.content = content
        post.save()

    return redirect("index")
  

В urls.py

     path("", views.index, name="index"),
    path("edit",views.edit,name="edit"),
  

Index.html

 <form method="POST" action="{% url 'edit' post.id %}" id="edit-form{{post.id}}" style="display:none;">
{% csrf_token %}
{{post.date}}
<textarea rows="5" class="form-control" name="textarea">{{post.content}}</textarea>
<button type="submit" class="btn btn-outline-primary" style="float: right;">Save</button>
</form>
  

Пытаюсь отредактировать какое-то сообщение, но получаю ошибку обратного для ‘edit’ с аргументами ‘(12,)’ не найдено. попробовано 1 шаблон (ы): [‘edit $’]

Комментарии:

1. Определение edit в urls.py не принимает никаких аргументов, но вы вызываете его с аргументом.

2. О .. понял!! Такая глупая ошибка. Спасибо

3. Ваш url.py for edit не принимает аргументы, и вы вызываете его с одним (id).

4. Большое спасибо, что исправили меня!! Я понял.