【问题标题】:listview objects are not redirecting to detailview when clicked单击时列表视图对象不会重定向到详细视图
【发布时间】:2020-09-01 02:14:34
【问题描述】:

我正在尝试创建一个博客,我可以通过基于类的列表视图在我的博客模型中显示对象列表。但是当尝试通过基于函数的详细视图单独显示它们时,我收到 404 错误。

(当前路径 blog/1 与其中任何一个都不匹配。)

我也尝试过基于类的视图,但不幸的是没有成功..请参阅..

models.py

         from django.db import models
         import datetime
        # Create your models here.
      
class BlogPost(models.Model):
title = models.CharField(max_length=500)
writer = models.CharField(max_length=150,default='my dept')
category =models.CharField(max_length=150)
image = models.ImageField(upload_to='images')
post   = models.TextField(max_length=2000)
Date  = models.DateField( default=datetime.date.today)


def __str__(self):
    return self.title

views.py

    from django.views.generic import ListView , DetailView , UpdateView
    from.models import BlogPost

class BlogList(ListView):
model = BlogPost
template_name = 'blog/bloglist.html'
context_object_name = 'post'

def detailview(request, id=None): blg = get_object_or_404(BlogPost, id=id)

context = {'blg': blg,
           }

return render(request, 'blog/blogdetail.html', context)

urls.py

   from django.urls import path

       # importing views from views..py 
     from .views import  BlogList ,detailview

urlpatterns = [
path('list', BlogList.as_view(), name='list'),
path('(?P<id>\d+)/$', detailview, name='detail')

         ]

bloglist.html

                    <div class="post-body">
                        {% for p in posts %}
                        <a href="/blog/{{ p.id }}"><blockquote>{{p}}</br></br>{{p.Date}}</blockquote> 
                           </a>

                        {% endfor %}

【问题讨论】:

    标签: python django


    【解决方案1】:

    您对path(...) 函数使用了错误的语法。应该是这样的

    from django.urls import path
    from .views import BlogList, detailview
    
    urlpatterns = [
        path('list', BlogList.as_view(), name='list'),
        path('<int:pk>/', detailview, name='detail')
            ^^^^^^^^^^^^^
    
    ]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-26
      • 2023-04-09
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 2018-04-23
      相关资源
      最近更新 更多