#python #django
#python #django
Вопрос:
итак, я создаю простую платформу mooc с использованием Django 2.1, и у меня возникла проблема.
Здесь вы можете найти весь мой проект, но я опишу всю ситуацию выше, и здесь вы можете найти весь экран печати ошибки django.
Итак, у меня есть этот проект под названием TamerMooc, в этом проекте есть 2 приложения. Основное приложение и приложение для курсов.
Это /courses/views.py файл:
from django.shortcuts import render, get_object_or_404
from .models import Course
def index(request):
courses = Course.objects.all()
template_name = 'courses/index.html'
context = {
'courses':courses
}
return render(request, template_name, context)
def details(request, slug):
course = get_object_or_404(Course, slug=slug)
template_name = 'courses/details.html'
context = {
'course': course
}
return render(request, template_name, context)
И это /courses/urls.py файл:
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('',views.index ,name='index'),
path('<slug:slug>', views.details , name='details'),
]
И, по крайней мере, /core/templates/base.html файл, указанный в файле ошибки.
<!doctype html>
{% load static %}
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Simple MOOC - Uma simples plataforma de ensino a distância" />
<title>Tâmer MOOC</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.3.0/pure-min.css">
<link rel="stylesheet" href="{% static 'css/styles.css' %}" />
</head>
<body>
<div class="header">
<div class="pure-menu pure-menu-open pure-menu-fixed pure-menu-horizontal">
<a class="pure-menu-heading" href="{% url 'home' %}">TÂMER MOOC</a>
<ul>
<li class="pure-menu-selected"><a href="{% url 'home' %}">Início</a></li>
<li><a href="{% url 'index' %}">Cursos</a></li>
<li><a href="{% url 'contact' %}"}>Contato</a></li>
</ul>
</div>
</div>
<div class = "content">
{% block content %}{% endblock %}
<div class="footer">
Tâmer MOOC - Uma simples plataforma de ensino a distância
</div>
</div>
<script src="http://yui.yahooapis.com/3.12.0/build/yui/yui-min.js"></script>
</body>
</html>
Я действительно прочитал много вопросов здесь, в stackoverflow, о подобных ошибках, но не могу найти решение.
Ответ №1:
Я думаю, что проблема здесь.
<a href=" {{ course.get_absolute_url }} "> <!--- {% url 'courses:details' course.slug %}--->
^^^^^ ^^^^
В шаблоне django комментарии таким образом не работают. Если вы хотите что-то закомментировать, сделайте это следующим образом:
{% comment %}
{% url 'courses:details' course.slug %}
{% endcomment %}
Или
{# url 'courses:details' course.slug #}
Соответствующую документацию можно найти здесь.
Комментарии:
1. Хорошо, это работает, но после этого я удаляю комментарии функции
get_absolute_url
(я думал, что проблема была здесь, поэтому я комментирую только для проверки), которые вы находите здесь , и проблема возвращается, вы можете увидеть ошибку здесь . Итак, в резюме я просто удаляю комментарий, который вы указываете, и «добавляю» функцию `get_absolute_url`. Спасибо за ответ, я многому учусь!2. В этом случае вам нужно добавить
namespace
в свой urls.py. Пример можно найти здесь: docs.djangoproject.com/en/2.1/intro/tutorial03/… . Но если вы это сделаете, то обновите URL-адреса в шаблоне, например{% url 'index' %} --> {% url 'courses:index' %}