【发布时间】:2014-01-29 21:30:46
【问题描述】:
我有一个这样的查询集:
asignaturas_equivalencia_alumno = list(Asignaturas_Equivalencia.objects.filter(matricula=inscripcion.usuario.adicional.matricula, origen_de_equivalencia = "SEP").distinct())
然后我遍历它们并打印索引,如果它在列表中并且是模型的属性:
for _as in asignaturas_equivalencia_alumno:
print _as in asignaturas_equivalencia_alumno, asignaturas_equivalencia_alumno.index(_as), _as.clave_materia
结果不同但索引不同,索引总是返回0,输出:
True 0 L1C115
True 0 L1PS101
True 0 L1C116
True 0 L1C118
True 0 L1PS105
True 0 L1PS107
True 0 L1PS109
True 0 L1PS111
True 0 L1C113
True 0 L1C114
True 0 L1C117
True 0 L1PS102
谢谢你:)
编辑
型号:
class Asignaturas_Equivalencia(models.Model):
matricula = models.CharField(max_length=10, primary_key=True)
clave_materia = models.CharField(max_length=9)
calificacion = models.CharField(max_length=2)
origen_de_equivalencia = models.CharField(max_length=4)
fecha_registro = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = 'diccionario_equivalencias_materias'
再次编辑
解决这个问题的唯一方法是使用枚举。
【问题讨论】:
-
你为什么要这样做?您知道它在列表中,因为您正在循环遍历它...奇怪的是它的索引始终为 0...如果您尝试打印整个列表会发生什么?
-
您需要将“as”更改为其他内容,这样您的代码就不会在较新版本的 Python 上崩溃。
-
对不起,我的代码中没有 as 仅用于演示,我会更改它
-
显示 AE 模型的代码。