找不到参数'(1,)'的'update'相反。尝试了1个模式:['Manager / update / $']

时间:2018-11-15 18:31:26

标签: python django django-templates django-views

在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 :(得分:0)

您实际上在site.id中使用ID为<a href="{% url 'Manager:update' site.id %}">的更新视图,但是您的路径URL不包含ID。

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

查看视图def siteUpdate(request, id_):的正确方法如下:

它将变成:

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