在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 %}
感谢帮助。
答案 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')