我的模型如下(MilestoneTicket

class Ticket(models.Model):
  create_date = models.DateTimeField('date created')
  project = models.ForeignKey(Project)
  milestone = models.ForeignKey(Milestone)
  title = models.CharField(max_length=200)
  priority = models.IntegerField()
  estimate = models.CharField(max_length=100)

class Milestone(models.Model):
  project = models.ForeignKey(Project)
  title = models.CharField(max_length=200)
  description = models.TextField()
  budget = models.IntegerField()

我想从Ticket模型中获取所有数据,以及相应的Milestone表数据(票据和里程碑之间的连接)
我的问题是
Ticket.objects.filter(project_id=10).select_related('milestone').values_list()

但这只是从Ticket模型中获取所有数据。为什么模型的数据不返回?这里怎么了?请帮帮我是新来的

最佳答案

使用select_related可以缓存与当前Milestone对象关联的Ticket对象,而不是检索其数据。
你可以试试:

from django.db.models import F

tickets = Ticket.objects.filter(project_id=10).select_related('milestone').annotate(m_title=F('milestone__title'), m_description=F('milestone__description'), ...)

然后,结果queryset中的对象将具有m_title属性。
tickets[0].m_title

关于python - Django select_related不返回外部表数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32703316/

10-16 18:15
查看更多