gpt4 book ai didi

python - 列表中的项目但索引始终为 0

转载 作者:行者123 更新时间:2023-11-30 23:29:38 25 4
gpt4 key购买 nike

我有一个像这样的查询集:

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'

再次编辑

解决这个问题的唯一方法是使用枚举。

最佳答案

检查并仔细检查您的主键。在我看来,它们是唯一可能像这样搞乱你的平等检查的东西。

当两个对象属于同一类并且具有相同的 pk 时,Django ORM 的 __eq__ 方法返回 True。我猜当你有两个带有 primary_key = True 的字段时,它会感到困惑。它应该抛出一些错误 afaik,但也许它只会导致未定义的行为。

来自the Django Models documentation :

"Each model requires exactly one field to have primary_key=True (either explicitly declared or automatically added)."

(强调我的)

关于python - 列表中的项目但索引始终为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com