首页 > 解决方案 > 未找到带有参数“(”,)”的“主题”的反向。尝试了 1 种模式:['topic/(?P[^/]+)$']

问题描述

我的问题是关于再次重定向到所有主题条目所在的 /topics/ 页面。当我结束一个条目时,此代码并重新加载选项卡而不是显示此错误,如下所示:

未找到带有参数“(”,)”的“主题”的反向。尝试了 1 种模式:['topic/(?P[^/]+)$']

我该如何解决这个问题?

在views.py

from django.shortcuts import render, HttpResponse
from django.views.generic.base import View
from .models import author, catagory, article

# Create your views here.
class HomeView(View):
    def get(self, request, *args, **kwargs):
        post = article.objects.all()
        context = {
            "post":post
        }
        return render (request, 'index.html', context)

def getauthor(request, name):
    return render (request, 'profile.html')


def getsingle(request, id):
    return render (request, 'single.html')

def getTopic(request, name):
    return render (request, 'category.html')

在 urls.py

    from django.urls import path
from .import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('', views.HomeView.as_view(), name = 'home'),
    #path('about/', views.AboutView.as_view(), name = 'about'),
    path('author/<name>', views.getauthor, name = 'author'),
    path('article/<int:id>', views.getsingle, name = 'single_post'),
    path('topic/<name>/', views.getTopic, name = 'topic'),
]
urlpatterns+= static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在 index.html

    {% extends "base.html" %}
{% load static %}
{% block title %} Welcome to my django templates {% endblock %}
 {% block content %}
    {% for p in post %}
        <article class="col-lg-3 col-md-3 col-sm-3 col-xs-6 col-xxs-12 animate-box">
            <figure>
                <a href="{% url 'single_post' id=p.id %}"><img src="{{ p.image.url }}" alt="Image" class="img-responsive"></a>
            </figure>
            <span class="fh5co-meta"><a href="{% url 'topic' p.category.name %}">{{ p.category.name }}</a></span>
            <h2 class="fh5co-article-title"><a href="{% url 'single_post' id=p.id %}">{{ p.title }}</a></h2>
            <span class="fh5co-meta fh5co-date">{{ p.posted_on }}</span>
        </article>
    {% endfor %}
{% endblock %}

Modules.py 是

from django.db import models
from django.contrib.auth.models import User

# Create your models here.
class author(models.Model):
    name = models.ForeignKey(User, on_delete = models.CASCADE, related_name='blog_posts')
    details = models.TextField()

    def __str__(self):
        return self.name.username

class catagory(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class article(models.Model):
    article_author = models.ForeignKey(author, on_delete = models.CASCADE, related_name='blog_posts')
    title = models.CharField(max_length=200)
    body = models.TextField()
    image = models.FileField()
    posted_on = models.DateTimeField (auto_now= False, auto_now_add= True)
    updated_on = models.DateTimeField (auto_now= True, auto_now_add= False)
    catagory = models.ForeignKey(catagory, on_delete = models.CASCADE)

    def __str__(self):
        return self.title

标签: pythondjango

解决方案


推荐阅读