I have a problem since I tried to use get_absolute_url(self): to enter in a
url beyond a photo. When I used , my index.html stopped running.
Here I have the top level url.py
from django.contrib import adminfrom django.urls import path, includefrom
simplemooc.core import views, urlsfrom simplemooc.courses import views,
urlsfrom django.conf import settingsfrom django.conf.urls.static import static
urlpatterns = [path('admin/', admin.site.urls),
path('', include(('simplemooc.core.urls', 'simplemooc'),
namespace='core')),
path('cursos', include(('simplemooc.courses.urls',
'simplemooc'), namespace='courses'))]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Here courses/url.py
from django.urls import pathfrom simplemooc.courses import views
urlpatterns = [path('', views.index, name='index'),
path('/<slug:slug>/', views.details, name='datails')]
Here courses/model.py
from django.db import modelsfrom django.urls import reverse
class CourseManager(models.Manager):
def search(self, query):
return self.get_queryset().filter(
models.Q(name__icontains=query) | \
models.Q(description__icontains=query)
)
class Course(models.Model):
name = models.CharField('Nome', max_length=100)
slug = models.SlugField('Atalho')
description = models.TextField('Descrição Simples', blank=True)
about = models.TextField('Sobre o Curso', blank=True)
start_date = models.DateField(
'Data de Início', null=True, blank=True
)
image = models.ImageField(
upload_to='courses/images', verbose_name='Imagem',
null=True, blank=True
)
created_at = models.DateTimeField(
'Criado em', auto_now_add=True
)
updated_at = models.DateTimeField('Atualizado em', auto_now=True)
objects = CourseManager()
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('courses:datails', (), {'slug': self.slug})
class Meta:
verbose_name = 'Curso'
verbose_name_plural = 'Cursos'
ordering = ['name']
And here courses/views.py
from django.shortcuts import render, get_object_or_404from django.http import
HttpResponse
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)
context = {
'course': course
}
template_name = 'courses/datails.html'
return render(request, template_name, context)
My problem happens when I use:
<a href="{{ course.get_absolute_url }}">
in my index.html
Please, Anyone can help me?
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/ac9b0445-45e5-4bd9-847e-5e161bf3670b%40googlegroups.com.