【问题标题】:django-sql : sql to query set [duplicate]django-sql:用于查询集的 sql [重复]
【发布时间】:2017-05-02 22:53:09
【问题描述】:

我有 2 个表格如下:

puzz_meeting_candidats :
  - id, canceled, candidat_id, meeting_id
puzz_meeting :
  - id, Client

我有一个查询:

SELECT U1.`candidat_id` AS Col1 FROM `puzz_meeting_candidats` U1 
 INNER JOIN `puzz_meeting` U2 ON ( U1.`meeting_id` = U2.`id` ) 
 WHERE U2.`Client` LIKE '%ipsos%' AND U1.`canceled` = False

如何在 Django 中使用 Q 对象将上面的查询转换为带有条件的查询集。我非常感谢你的帮助!!! :D

【问题讨论】:

  • 您的问题在哪里?请编辑它,你的问题根本不清楚。

标签: python sql django


【解决方案1】:

假设你的模型看起来像这样:

class PuzzMeetingCandidats(models.Model):
    canceled = models.BooleanField(default=False)
    candidat = models.ForeignKey('Candidat')
    meeting = models.ForeignKey('PuzzMeeting')

class PuzzMeeting(models.Model):
    Client = models.CharField(max_length=128, null=True)

你可以不用Q写这样的查询:

qs = PuzzMeetingCandidats.objects.filter(
    canceled=False, 
    meeting__Client__contains='ipsos')

也就是说,您还没有发布您的模型,我们需要先查看这些模型以帮助您编写查询。

【讨论】:

  • 感谢您的回答!但我需要使用 Q 对象,因为我进行动态查询。
  • 对不起@NhatAnh,我不明白你的意思。上面的 qs 与您发布的 SQL 匹配。
  • 我需要同样的:qs = PuzzMeetingCandidats.objects.filter( Q(canceled=False), Q(meeting__Client__contains='ipsos')) 因为我的问题只是完整查询的一部分。跨度>
  • @2ps 这个故事的寓意是不要回答这样模糊的问题
猜你喜欢
  • 2017-11-03
  • 1970-01-01
  • 2016-02-08
  • 2015-12-23
  • 2017-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多