2016-05-02 3 views
1

Название моего проекта - «trydjango19», и у меня есть два приложения: «информационный бюллетень» и «сообщения».Реверс для 'дома' с аргументами '()' и аргументами ключевого слова '{}' не найден. 0 pattern (s) try: []

trydjango19/urls.py является:

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^posts/', include("posts.urls", namespace='posts')), 
    url(r'^', include("newsletter.urls", namespace='newsletter')),] 

бюллетень/urls.py является:

urlpatterns = [ 
    url(r'^', 'newsletter.views.home', name='home'),] 

бюллетень/view.py является:

def home(request): 
    title = 'ОСТАВЬТЕ ЗАЯВКУ' 
    form = SignUpForm(request.POST or None) 
    context = { 
     "title": title, 
     "form": form 
    } 
    if form.is_valid(): 
     instance = form.save(commit=False) 

     full_name = form.cleaned_data.get("full_name") 
     if not full_name: 
      full_name = "anonymous" 
     instance.full_name = full_name 
     instance.save() 
     context = { 
      "title": "Ваша заявка принята!" 
    } 

    if request.user.is_authenticated() and request.user.is_staff: 
     queryset = SignUp.objects.all().order_by('-timestamp') 
     context = { 
      "queryset": queryset 
     } 

    return render(request, "newsletter/home.html", context) 

информационный бюллетень/шаблоны/информационный бюллетень/home.html:

{% extends 'newsletter/base.html' %} 
{% load crispy_forms_tags %} 
{% load staticfiles %} 

{% block head_title %}Welcome | {{ block.super }}{% endblock %} 

{% block jumbotron %} 
    {% if not request.user.is_authenticated %} 

      <img class="close" onclick="show('none')" src="{% static 'img/close.png' %}"> 

      <p class='lead text-align-center'>{{ title }}</p> 

      <form method='POST' action=''>{% csrf_token %} 
       {{ form|crispy }} 
       <p class='text-align-center'> 
        <input class='btn btn-primary' type='submit' value='Откликнуться' /> 
       </p> 
      </form> 
     </div> 
<img src="{% static 'img/pony.png' %}" width='380px' /> 
... etc. 

Я попытался с urls.py во многих отношениях, с «пространством имен» и «app_name», но я до сих пор не понимаю, как он должен работать правильно

In template /home/pavel/DJANG/django19/src/newsletter/templates/newsletter/home.html, error at line 0 
Reverse for 'home' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 

ответ

5

Я предположив, что вы использовали url тег в base.html аналогичной ниже:

{% url 'home' %} 

но в главном urls.py файл вы certained пространства имен для суба urls.py файла, который находится в newsletter приложения.

изменить этот url тег ниже:

{% url 'newsletter:home' %} 

или удалить параметр имен из url(r'^', include("newsletter.urls", namespace='newsletter')),] линии.


Примечание:
Лучше установить, что конец дома шаблона URL, но это не вызывает исключение:

urlpatterns = [ 
    url(r'^$', 'newsletter.views.home', name='home'),] 
+0

ваше предположение верно, у меня есть {% включают «бюллетень /navbar.html '%} in base.html где ссылки для звонков – pachvo

+0

Я рад, что это сработало :) – Mohsen

+0

Я бы так никогда не осознал такую ​​проблему. Вот спасибо! – almanegra