Python 返回通过foreignkey与模型相关的字段

Python 返回通过foreignkey与模型相关的字段,python,django,Python,Django,我只想返回SenderInfo的每个实例的所有消息。因此,我可以看到用户发出的所有消息。我知道如何查看特定邮件的发件人,但实现相反效果的最简单方法是什么?这将返回一个包含所有邮件的查询集: class SenderInfo(models.Model): #to create unique id numbers sender = models.CharField(max_length=15) id_number = models.IntegerField(blank=Tru

我只想返回
SenderInfo
的每个实例的所有消息。因此,我可以看到用户发出的所有消息。我知道如何查看特定邮件的发件人,但实现相反效果的最简单方法是什么?

这将返回一个包含所有邮件的查询集:

class SenderInfo(models.Model):
    #to create unique id numbers
    sender = models.CharField(max_length=15)
    id_number = models.IntegerField(blank=True, null=True)
class Messages(models.Model):
    message_sender = models.ForeignKey(SenderInfo, related_name='messages')
    message_body = models.TextField()

这将返回一个包含所有消息的查询集:

class SenderInfo(models.Model):
    #to create unique id numbers
    sender = models.CharField(max_length=15)
    id_number = models.IntegerField(blank=True, null=True)
class Messages(models.Model):
    message_sender = models.ForeignKey(SenderInfo, related_name='messages')
    message_body = models.TextField()
您可以这样做:

视图.py

sender.messages_set.all()
HTML模板

sender_infos = SenderInfo.objects.all()
您可以这样做:

视图.py

sender.messages_set.all()
HTML模板

sender_infos = SenderInfo.objects.all()

只是想澄清一下,
sender
SenderInfo
的一个实例。很抱歉回答了错误的答案,我以前尝试过这个,但我得到的错误是“object has not attribute”messages\u set“您声明了
related\u name='messages'
。所以它应该是
sender\u info\u instance.messages.all()
对于@CoffeebasedLieform谢谢你,我在这个问题上花了太长时间。你很高兴澄清,
sender
SenderInfo
的一个实例。很抱歉回答了错误的答案,我以前尝试过,但我得到的错误是“object has not attribute”messages\u set您声明了
相关的\u name='messages'
。所以它应该是
sender\u info\u instance.messages.all()
。@CoffeeBasedLifeform谢谢你,我在这个问题上花了太长时间。你很棒