python - 未找到带有参数“(1,)”的“更新”的反向操作。尝试了 1 种模式:['Manager/update/$']
问题描述
在 home.html 中创建编辑按钮后,我一直收到此错误,不知道如何解决。
视图.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)
模型.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)
网址.py
app_name='Manager'
urlpatterns = [
path('', views.home, name='home'),
path('create/', views.siteCreate, name='create'),
path('update/', views.siteUpdate, name='update')
]
主页.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 %}
感谢帮助。
解决方案
您实际上使用 ID 调用更新视图site.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')
推荐阅读
- arrays - 如何将单行中的未知数量的数字作为输入并将每个数字分配给一个变量?
- java - 如何按两个字段查找最新文档
- python - 无法使用 Django 将数据插入数据库
- c# - 实体框架 6:使用新实体实例创建更改跟踪代理,而无需通过 DbSet.Create 方法替换现有构造函数
- mac-catalyst - 如何在 macOS 11 中计算 Mac Catalyst 中的实际窗口大小
- excel - 输入总分钟数时,如何让excel以小时和分钟为单位输出持续时间?
- c# - CheckedChanged 未触发
- react-native - React Native滚动视图在android中不起作用
- angular - 如何将 FirebaseUI 正确配置到我的 Angular 项目中?
- excel - Copy columns from one csv file to another using PowerShell