问题描述
我想用外键在表中显示来自两个模型的数据: 我将以这个模型为例:
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,则签入模板。