Как вызвать просмотр в другом приложении, используя шаблоны тегов в django? - PullRequest
1 голос
/ 25 января 2020

Я получаю сообщение об ошибке Обратный список для 'question_list' не найден. 'question_list' не является допустимой функцией просмотра или именем шаблона. после использования тега шаблона 'collab_app: question_list' в шаблоне.

home. html:

{% extends "_base.html" %} 
{% load static %}
{% load socialaccount %}
{% block title %}Home{% endblock title %} 
{% block content %}
<h1>Homepage</h1>
<a href="{% url 'collab_app:question_list' %}">Ask Question Here</a>
<img class="collabimage" src="{% static 'images/collab.jpg' %}" ><br>
{% if user.is_authenticated %}
  Hi {{ user.email }}
  <p><a href="{% url 'account_logout' %}">Log Out</a></p>
{% else %}
  <p>You are not logged in</p>
  <!--Github-->
  <a href="{% provider_login_url 'github' %}" ><p class="git">Github</p></a>
  <a href="{% url 'account_login' %}">Login</a>
  <a href="{% url 'account_signup' %}">Sign Up</a>
{% endif %}
{% endblock content %}

views.py:

class HomePageView(generic.TemplateView):
    template_name = "home.html"

urls.py в приложении пользователя:

from django.urls import path, include
from .views import SignupPageView
from .views import HomePageView

app_name = "users"

    urlpatterns = [
        path("", HomePageView.as_view(), name="home"),
        path("signup/", SignupPageView.as_view(), name="signup"),
    ]

urls.py в проекте:

from django.contrib import admin
from django.urls import path, include
from users.views import HomePageView


urlpatterns = [
    path("", include("users.urls")),
    path("collab/", include("collab_app.urls"),),  # , "collab_app")),
]

urls.py в collap_app:

from django.contrib import admin
from django.urls import path, include
from collab_app import views
from users.views import HomePageView

app_name = "collab_app"

urlpatterns = [
    path("", views.QuestionListView.as_view(), name="question-list"),
]

view.py в collab_app:

class QuestionListView(ListView):
    model = Question
    template_name = "collab_app/question_list.html"

Ответы [ 2 ]

1 голос
/ 25 января 2020

Вы назвали URL как question-list, и вы ссылаетесь question_list; это просто опечатка.

Используйте {% url 'collab_app:question-list' %} вместо.

0 голосов
/ 25 января 2020

Попробуйте изменить.

Ваш urls.py в collap_app:

urlpatterns = [
    path("question-list", views.QuestionListView.as_view(), name="question-list"),
]

В доме. html

<a href="{% url 'collab_app:question-list' %}">Ask Question Here</a>
...