【问题标题】:Reverse for 'plan_edit' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['palan/edit$']使用关键字参数“{'pk': ''}' 未找到“plan_edit”的反向。尝试了 1 种模式:['palan/edit$']
【发布时间】:2018-11-07 13:16:42
【问题描述】:

我收到以下错误:

未找到带有关键字参数“{'pk': ''}' 的“plan_edit”的反向操作。尝试了 1 种模式:['palan/edit$']`。

有人知道怎么解决吗?

urls.py

urlpatterns = [
    url(r'^$', views.post_list, name='post_list'),
    url(r'^palan/(?P<pk>[0-9]+)/$', views.palan_detail, name='palan_detail'),
    url(r'^palan/new/$', views.plani_new, name='plani_new'),
    url(r'^nn1/new/$', views.plani_new1, name='plani_new1'),
    url(r'^palan/edit$', views.edit, name='plan_edit'),
]

views.py

def edit(request, pk):
    post = get_object_or_404(Planning, pk=pk)
    if request.method == "POST":
        form = PostFormP(request.POST, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            post.save()
            return redirect('palan_detail', pk=post.pk)
    else:
        return render(request, 'pages/plan_edit.html')

def palan_detail(request, pk):
    palan = get_object_or_404(Planning, pk=pk) 
    j = Jour.objects.all().count() 
    return render(request, 'pages/palan_detail.html', {'palan': palan, 'j':j},) 

palan_detail.html

<a href="{% url 'plan_edit' pk=post.pk %}">
    <h1>{{ palan.parcours }}</h1> 
</a>
<p>{{ palan.semestre|linebreaksbr }}</p>
<p>{{ palan.jour.jour1}}</p>

【问题讨论】:

    标签: python django django-urls


    【解决方案1】:

    您的视图中没有名为post 的上下文变量。更改以下行

    <a href="{% url 'plan_edit' pk=post.pk %}">
    

    <a href="{% url 'plan_edit' pk=palan.pk %}">
    

    【讨论】:

      猜你喜欢
      • 2020-11-16
      • 2016-12-11
      • 2019-02-07
      • 2019-11-18
      • 1970-01-01
      • 2019-08-06
      • 2020-11-24
      • 2017-08-12
      • 2020-11-26
      相关资源
      最近更新 更多