【问题标题】:Reverse for 'update' with arguments '(1,)' not found. 1 pattern(s) tried: ['Manager/update/$']未找到带有参数“(1,)”的“更新”的反向操作。尝试了 1 种模式:['Manager/update/$']
【发布时间】:2018-11-15 18:31:26
【问题描述】:

在 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 %}

感谢您的帮助。

【问题讨论】:

    标签: python django django-templates django-views


    【解决方案1】:

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

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

    看到你的观点def siteUpdate(request, id_):正确的称呼方式如下:

    它会变成:

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

    【讨论】:

      猜你喜欢
      • 2021-11-26
      • 2021-01-17
      • 2020-12-28
      • 2022-01-17
      • 2020-10-28
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多