微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

for循环中的django外键

如何解决for循环中的django外键

我想用外键在表中显示来自两个模型的数据: 我将以这个模型为例:

MTKTextureLoader

现在我想让 dataTable 显示所有记者 class Reporter(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) email = models.EmailField() def __str__(self): return "%s %s" % (self.first_name,self.last_name) class Article(models.Model): headline = models.CharField(max_length=100) pub_date = models.DateField() reporter = models.ForeignKey(Reporter,on_delete=models.CASCADE) def __str__(self): return self.headline class Meta: ordering = ['headline'] 以及与每个记者相关的最新文章 last_name

这是我的views.py

headline

但这只是给记者的名字

def reporters(request):
    reporters = Reporter.objects.all()
    total_reporters = Reporter.objects.count()
    context = dict(reporters=reporters,total_reporters=total_reporters)
    return render(request,'reporters/reporters.html',context)

解决方法

在你的 Reporter 模型中编写一个获取最新文章的方法:

class Reporter(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    email = models.EmailField()

    def __str__(self):
        return "%s %s" % (self.first_name,self.last_name)
    
    def get_latest_article(self):
        return self.article_set.latest('pub_date')

现在您可以在模板中编写:

{% with latest_article=reporter.get_latest_article %}
    {{ latest_article.headline }}
    {{ latest_article.pub_date }}
{% endwith %}

注意:如果报告者没有文章,latest 可能会引发一个DoesNotExist 异常,您可能需要使用try-except 块来防止任何错误(在except 块中返回None)如果该值不为 None,则签入模板。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。