【发布时间】:2014-05-06 01:20:59
【问题描述】:
我有以下 ORM 查询集,它可以正常工作,但现在我需要它来排除自己出现在已经在表上添加了具有相同 ID 的行的用户面前。
换句话说,如果用户已经为该特定问题添加了答案,我希望用户不要两次回答该问题,他将永远不会看到这些值。这是我的查询 ORM
right_now = datetime.datetime.now() - timedelta(minutes=-10)
partidos = encuesta.objects.filter(fecha__gt=right_now).order_by('fecha')
上面的这个 ORM 查询显示了从今天到截止日期前 10 分钟的所有问题。
现在我只想显示特定用户已经回答的问题。正如您在下面看到的,我只需要显示他尚未回答但仍按日期和相同顺序过滤的那些问题。
有什么想法吗?
这是我的模型。
models.py
class equipo(models.Model):
nombre = models.CharField(max_length=30)
bandera = StdImageField(upload_to='bandera/%Y/%m/%d',
variations={
'large':(53,53, False),
'thumbnail': (70, 26, False)})
GRUPOS = (
('A', 'Grupo A'),
('B', 'Grupo B'),
('C', 'Gropo C'),
('D', 'Gropo D'),
('E', 'Gropo E'),
('F', 'Gropo F'),
('G', 'Gropo G'),
('H', 'Gropo H'),
)
grupo = models.CharField(max_length=1, choices=GRUPOS)
def banderaEquipo(self):
return '<img src="/media/%s">' % (self.bandera.thumbnail)
banderaEquipo.allow_tags = True
def __unicode__(self):
return self.nombre
class encuesta(models.Model):
equipoA = models.ForeignKey(equipo, related_name='equipo_equipoA')
golesEquipoA = models.IntegerField(max_length=2, null=True, blank=True)
equipoB = models.ForeignKey(equipo, related_name='equipo_equipoB')
golesEquipoB = models.IntegerField(max_length=2, null=True, blank=True)
ETAPA = (
('1', 'Primera Etapa'),
('2', 'Octavos De Final'),
('3', 'Cuartos De Final'),
('4', 'Semifinal'),
('5', 'Final'),
('6', '3ra Posicion')
)
etapa = models.CharField(max_length=1, choices=ETAPA)
fecha = models.DateTimeField(auto_now_add=False)
def __unicode__(self):
return "%s Vs. %s" % (unicode(self.equipoA), unicode(self.equipoB))
class respuesta(models.Model):
encuesta = models.ForeignKey(encuesta)
empresa = models.ForeignKey(empresa)
empleado = models.ForeignKey(empleado)
equipoA = models.IntegerField(max_length=1)
equipoB = models.IntegerField(max_length=1)
fecha = models.DateField(auto_now_add=True)
def __unicode__(self):
return "%s" % (unicode(self.encuesta))
【问题讨论】:
-
请解释模型:encuesta - 这是问题吗? respuesta - 这是答案?什么外键连接用户回答:empresa?恩普莱多?
-
有一个英文变量的例子可能会更容易回答这个问题。
-
@zymud 是的,确实 question=encuesta 和 answer=respuesta 和 respuesta 通过外键与 encuesta 相关联,并且有一个 empleado = 用户来查看它属于谁。我需要的是带来所有 encuestas = 当前用户在 respuestas=answers 中不存在的答案 = empleado
标签: django django-models orm