Python Django正在重定向最新帖子的URL视图

Python Django正在重定向最新帖子的URL视图,python,django,url,Python,Django,Url,我是Django的新手,所以如果这看起来很琐碎,请原谅 我正在尝试为一本在线杂志创建一个最新一期的链接。这是我的密码: home.html: {%extends 'base.html'%} {%load static%} {% block content%} <button href="#"> Latest Issue</button> {%endblock%} URL.py: from django.urls import path

我是Django的新手,所以如果这看起来很琐碎,请原谅

我正在尝试为一本在线杂志创建一个最新一期的链接。这是我的密码:

home.html:

{%extends 'base.html'%}
{%load static%}
{% block content%}       
<button href="#"> Latest Issue</button>
{%endblock%}
URL.py:

from django.urls import path
from .models import Post, Issue
#from . import views
from .views import HomeView, ArticleDetailView, AddPostView,EditPostView, DeletePostView,about_view, submit_view,IssueView, AddIssueView, IssueDetailView, EditIssueView

urlpatterns = [
    path('',HomeView.as_view(),name="home"),
   path('issue/',IssueView.as_view(), name="issue"), path('issue/<int:pk>', IssueDetailView.as_view(), name='issue-detail'),   
]
#Irrelevant urlpatterns omitted.
从django.url导入路径
from.models导入Post、Issue
#从。导入视图
从.view导入HomeView、ArticleDetailView、AddPostView、EditPostView、DeletePostView、关于视图、提交视图、IssueView、AddIssuView、IssueDetailView、EditIssueView
URL模式=[
路径(“”,HomeView.as_view(),name=“home”),
路径('issue/',IssueView.as_view(),name=“issue”),路径('issue/',IssueDetailView.as_view(),name='issue-detail'),
]
#忽略不相关的模式。
我看了,但我无法实施,特别是因为它是9年前的。我不知道为重定向url“最新问题”放置/创建什么视图,我认为这就是我的问题所在。以下是我的尝试:

\\home.html
<button href="{% url 'latest-issue'%}"> Latest Issue</button>

\\ urls.py
urlpatterns = [
   path('',HomeView.as_view(),name="home"),
   path('issue/',IssueView.as_view(), name="issue"), 
   path('issue/<int:pk>', IssueDetailView.as_view(), name='issue-detail'), 
   path('latest-issue/', latest-issue.redirector, name='latest-issue')
]
 
def redirector(request):
     issue = Issue.objects.latest('id')
     return http.HttpResponseRedirect(reverse('issue-detail', args=[issue.pk]))
\\home.html
最新一期
\\url.py
URL模式=[
路径(“”,HomeView.as_view(),name=“home”),
路径('issue/',IssueView.as_view(),name=“issue”),
路径('issue/',IssueDetailView.as_view(),name='issue-detail'),
路径('latest-issue/',latest-issue.redirector,name='latest-issue')
]
def重定向器(请求):
issue=issue.objects.latest('id')
返回http.HttpResponseRedirect(反向('issue-detail',args=[issue.pk]))

我应该为重定向url设置什么视图,以便它仍然调用重定向功能?

如果我理解您的问题,您需要一个指向模型中所有最新问题的链接? 您在issueview中覆盖了默认查询集 queryset=modelname.objects.order_by(“-created time”)
在您的模型中,您应该将DateTimeField设置为auto now add=true

感谢Omri Shaffer帮助我了解如何以不同的方式处理此问题。我在我的urls.py文件中创建了一个url,它将调出一个基于函数的视图get_latest_问题:

from .views import get_latest_issue
path('latest-issue/', get_latest_issue, name='latest-issue')
然后,我在views.py中定义了“redirector”函数,确保导入正确的函数:

from django.shortcuts import HttpResponseRedirect
from django.urls import reverse

def get_latest_issue(request): 
     issue = Issue.objects.latest('id')
     return HttpResponseRedirect(reverse('issue-detail', args=[issue.pk]))
然后,我更改了home.html中的按钮,使其成为一个链接,这是我第一次尝试时的错误做法:

<button onclick="location.href='{% url 'latest-issue' %}'"> Latest Issue</button>
最新版本

我还可以将文本设置为链接,并将其样式设置为具有Bootstrap的btn类的按钮。

您好。1) 这个物体是什么?最新版本。重定向器2)运行页面时,您得到了什么?3) 看起来您需要一个单独的url路径和视图函数:“获取最新问题”,该函数将检查最新问题(仅当单击按钮时)并返回redirect@OmriShaffer我试图复制我链接的解决方案,但我认为它不适合我的情况。我会尝试你的方法,所以不要理会我失败的尝试。我会在views.py中将“redirector”函数中的代码设置为基于函数的视图“get_latest_issue”吗?我还需要补充什么吗?很高兴听到!
<button onclick="location.href='{% url 'latest-issue' %}'"> Latest Issue</button>