Django NoreverseMatch错误未找到url

时间:2018-03-05 05:12:37

标签: django url views reverse

我已经查找了通过paramater(id)的链接,但我收到了此错误:

我想点击该链接并重定向到 modifyPlanteur.html ,其中包含由ID查询填写的表单。

但是我收到了这个错误:

  

反转' modifyPlanteur'有参数'('',)'未找到。尝试了1种模式:[' blog / modifyPlanteur /(?P [0-9] +)$']

ps:抱歉,我的英语不好我感谢法国人。

url项目:

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'^about/$', views.about, name='about'),
    url(r'^contact/$', views.contact, name='contact'),
    url(r'^blog/', include('blog.urls'), name='blog'),
    url(r'^admin/', admin.site.urls),
]

if settings.DEBUG:
    import debug_toolbar
    urlpatterns = [
        url(r'^__debug__/', include(debug_toolbar.urls)),
    ] + urlpatterns

网址:

from django.conf.urls import url
from . import views

app_name ='blog'

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^posts/(?P<id>[0-9]+)$', views.show, name='show'),
    url(r'^planteur/$', views.planteur, name='planteur'),
    url(r'^mouvement/$', views.mouvement, name='mouvement'),
    url(r'^ajax/planteur/$', views.searchPlanteur, name='searchPlanteur'),
    url(r'^ajax_query/$', views.ajax_query, name='ajax_query'),
    url(r'^ajax_query/blog/ajax_query.html/$', views.ajax_query, name='ajax_query'),
    url(r'^autocomplete/$', views.autocomplete, name='autocomplete'),
    url(r'^get_planteurs/$', views.get_planteurs, name='get_planteurs'),
    url(r'^modifyPlanteur/(?P<id>[0-9]+)$', views.modifyPlanteur, name='modifyPlanteur'),

]

的观点:

        def planteur(request):
                planteurs = Planteur.objects.all()
                #instance = get_object_or_404(Planteur, id=17)

                form = PlanteurForm(request.POST or None)

                if form.is_valid():
                        planteur = form.save(commit=False)
                        planteur.save()
                        #envoie = True
                #        form = PlanteurForm()
                #else:
                #   form = PlanteurForm()
                return render(request, 'blog/planteur.html', locals(), { 'planteurs': planteurs})

    def modifyPlanteur(request, id):
        planteurs = Planteur.objects.all()
        instance = get_object_or_404(Planteur, pk=id)
        form = PlanteurForm(request.POST or None, instance=instance)

        if form.is_valid():
            planteur = form.save(commit=False)
            planteur.save()
            envoie = True
            form = PlanteurForm()
            return render(request, 'blog/modifyPlanteur.html', { 'planteurs': planteurs, 'instance': instance})

模板:planteur

{% extends 'blog/base.html' %}

{% block title %}Poyosei|creation planteur{% endblock %}

{% block body %}

    <h1>{{ planteurs|length }} planteurs</h1>

    {% if envoi %} Le planteur a bien été crée !{% endif %}

<table class="table">
    <thead class="thead-dark">
        <tr>
            <th>Id</th>
            <th>Nom</th>
            <th>Prenom</th>
            <th>Pacage</th>
            <th>Siret</th>
            <th>Controle?</th>
        </tr>
    </thead>
        {% csrf_token %}
        {% for p in planteurs %}
    <tbody>
        <tr>
            <td>{{ p.id }}</td>
            <td>{{ p.nom }}</td>
            <td>{{ p.prenom }}</td>
            <td>{{ p.pacage }}</td>
            <td>{{ p.siret }}</td>
            <td>{{ p.controle }}</td>
            <td><a href="{% url 'blog:modifyPlanteur' p.id %}" role="button" class="btn btn-warning" method="post">Editer</a></td>
        </tr>

    </tbody>
        {% endfor %}
</table>
{% endblock %}  

templates modifyPlanteur:

{% block body %}

    <h1>{{ planteurs|length }} planteurs</h1>

<div class='farmer'>
    <form class='planteur' id='PlanteurForm' a href="{% url 'blog:modifyPlanteur' p.id %}" method="post">

        {% csrf_token %}
        {% for field in form %}

        <div class="form-group">
            <label class='col-sm-4 control-label' for="{{ field.name }}">{{ field.label }}: </label>

            <div class="col-sm-12">

                    {{ field }} 

            </div>
        </div>

        {% endfor %}
        <input type="submit" name="submit" class='btn btn-primary btn-lg' value='Valider'>
    </form>
</div>      

{% endblock %}  

1 个答案:

答案 0 :(得分:0)

您忘记添加结束斜杠&#39; /&#39;

url(r'^modifyPlanteur/(?P<id>[0-9]+)/$', views.modifyPlanteur, name='modifyPlanteur'),