无法点击类别网址Django 1.10

时间:2016-12-07 13:15:25

标签: django django-templates

enter image description here 我看到了网址,但是点击它不会在页面上看到。 如果我直接转到该链接,则会打开该页面。在我看来,问题在于def post_list

模型

class Category(models.Model):
    name = models.CharField(max_length=128, unique=True, verbose_name='Название')
    slug = models.SlugField(unique=True)
    image = models.ImageField(null=True, blank=True, verbose_name='Изображение')
    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super(Category, self).save(*args, **kwargs)
    class Meta:
        verbose_name = 'Категории'
        verbose_name_plural = 'Категории'
    def __str__(self):  # For Python 2, use __unicode__ too
        return self.name
    def get_absolute_url(self):
        return reverse('show_category', kwargs={'slug': self.slug})
class Post(models.Model):
    category = models.ForeignKey(Category, default=1, verbose_name='Категория')
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, verbose_name='Пользователь')
    title = models.CharField(max_length=120, verbose_name='Заголовок')
    slug = models.SlugField(unique=True)
    image = models.ImageField(null=True, blank=True, verbose_name='Изображение')
    content = models.TextField(max_length=10000, verbose_name='Контент')
    updated = models.DateTimeField(auto_now=True, auto_now_add=False, verbose_name='Обновлено')
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True, verbose_name='Создано')
    keywords = models.CharField(max_length=1024, blank=True, null=True)
    description = models.CharField(max_length=1024, blank=True, null=True)
    class Meta:
        verbose_name = 'Статьи'
        verbose_name_plural = 'Статьи'
        ordering = ["-timestamp", "-updated"]
    def __str__(self): # For Python 2, use __unicode__ too
        return self.title
    def get_absolute_url(self):
        return reverse('detail', kwargs={'slug': self.slug, 'category': self.category})

的观点

仅问题页面

def post_list(request):
    queryset_list = Post.objects.all()
    category_list = Category.objects.all()
    search = request.GET.get("s")
    if search:
         queryset_list = queryset_list.filter(
            Q(title__icontains=search) |
            Q(content__icontains=search) #|
            #Q(user__first_name__icontains=search) |
            #Q(user__last_name__icontains=search)
        ).distinct()
    paginator = Paginator(queryset_list, 5)  # Show 5 contacts per page
    page = request.GET.get('page')
    try:
        queryset = paginator.page(page)
    except PageNotAnInteger:
        queryset = paginator.page(1)
    except EmptyPage:
        queryset = paginator.page(paginator.num_pages)
    context = {
        "object_list": queryset,
        "category_list": category_list,
        "title": "Новое"
    }
    return render(request, "post_list.html", context)

<小时/>

网址

from .views import (
    post_list,
    post_detail,
    show_category,
)
urlpatterns = [
    url(r'^$', post_list, name="list"),
    url(r'^(?P<category>[-\w]+)/(?P<slug>[-\w]+)/$', post_detail, name="detail"),
    url(r'^(?P<slug>[-\w]+)/$', show_category, name='show_category'),
]

<小时/>

的HTML

{% for cat in category_list %}
                <li><a href="{{ cat.get_absolute_url }}" data-toggle="tab">{{ cat.name }}</a></li>
                {% endfor %}

0 个答案:

没有答案