显示引用另一个模型的对象列表

Posted

技术标签:

【中文标题】显示引用另一个模型的对象列表【英文标题】:Show list of objects which have a reference to another model 【发布时间】:2015-09-14 05:36:30 【问题描述】:

我正在尝试制作一个简单的 django 应用程序,该应用程序将在主页上显示论坛列表,当用户单击论坛标题时将被带到属于该论坛的帖子

这是post模型的代码:

class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
    default=timezone.now)
published_date = models.DateTimeField(
    blank=True, null=True)
forum = models.ForeignKey('Forum') # referinta la Forum
upload = models.FileField("Upload a file", upload_to = 'media', null=True, blank=True)

def publish(self):
    self.published_date = timezone.now()
    self.save()
def __str__(self):
    return self.title

以及论坛模型的代码:

class Forum(models.Model):
    title = models.CharField(max_length=200)
    published_date = models.DateTimeField(blank=True, null=True)

    def __str__(self):
        return self.title

views.py 中的代码:

def forum_list(request):
forums= Forum.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'students_platform/post_list.html', 'forums': forums)

def post_list(request):
     posts=Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'students_platform/post_list.html', 'posts': posts)

最后,我有一个 post_list.html 文件,如下所示:

<html>
<head>
    <title>Informatii despre examene</title>
</head>
<body>
    <div>
        <h1> Informatii despre examene</h1>

    <h2> Bine ati venit! </h2>
    </div>
% for forum in forums %
<div>


    <h1><a href=""> forum.title </a></h1>
    <p> forum.text|linebreaks </p>

</div>
% endfor %

</body>
</html>

如何编辑 html 文件,以便每次单击论坛标题时都可以将我带到添加到该论坛的帖子?

【问题讨论】:

在您的模板中,您需要在 href="" 中添加论坛的网址,请参阅:***.com/questions/1777612/… @joelgoldstick 我认为她的意思是管理员的网址 【参考方案1】:

添加到您的 PostModelAdmin list_filter = ('forum',)

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter

<a href="% url 'admin:yourappname_post_changelist' %?forum__id__exact= forum.id "> forum.title </a>

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#reversing-admin-urls

【讨论】:

以上是关于显示引用另一个模型的对象列表的主要内容,如果未能解决你的问题,请参考以下文章

Django 1.6:在另一个模板中显示特定模型对象

如何搜索来自另一个页面模型的串联名称列表?

如何使用 Django 在 HTML 中显示多个对象的列表,一个在另一个之下?

查找一个列表中具有与另一个对象列表中的属性匹配的属性的所有对象

django模型引用其他类的对象

在初始化列表中初始化对象