Реверс для 'update' с аргументами '(1,)' не найден. Попробован 1 шаблон (ов): ['Manager / update / $'] - PullRequest
0 голосов
/ 15 ноября 2018

После создания кнопки редактирования в home.html я постоянно получаю эту ошибку и не знаю, как ее исправить.

views.py

def siteUpdate(request, id_):
site=get_object_or_404(Site_data,id=id_)
if request.POST=="POST":
    form=SiteForm(request.POST,instance=site)
    if form.is_valid():
        form.log_name=request.user
        form.save()
        return redirect('Manager:home.html')
else:
    form=SiteForm(instance=site)
    site = {

        'form':form
    }
    return render(request,'Manager/siteform.html',sie)

models.py

class Site_data(models.Model):
log_name = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
site_name = models.CharField(max_length=200)
site_url = models.CharField(max_length=200)
site_login = models.CharField(max_length=200, unique=True)
password = models.CharField(max_length=200)

urls.py

app_name='Manager'

urlpatterns = [

path('', views.home, name='home'),
path('create/', views.siteCreate, name='create'),
path('update/', views.siteUpdate, name='update')

]

home.html

{% for site in sites %}
<td>{{site.site_name}}</td>
<td>{{site.site_url}}</td>
<td>{{site.site_login}}</td>
<td>{{site.site_password}}</td>
<td><a href="{% url 'Manager:update' site.id %}"><button 
type="button">Edit</button></a></td>
{% endfor %}

Спасибо за помощь.

1 Ответ

0 голосов
/ 15 ноября 2018

Вы фактически вызываете представление обновления с идентификатором site.id в <a href="{% url 'Manager:update' site.id %}">, однако URL-адрес вашего пути не содержит идентификатора.

<s>path('update/', views.siteUpdate, name='update')</s>

Видя ваше мнение def siteUpdate(request, id_): правильный способ его вызова следующий:

Это станет:

path('update/<int:id_>', views.siteUpdate, name='update')
...