我正在尝试将对象附加到列表中,并且我不断收到错误list indices must be integers, not unicode
。它对我没有任何意义,因为我没有以任何方式操纵列表索引......我只是创建一个新列表并将对象追加到它上面。
瞧:
def read(self, request, uid, month, year):
qs = NewLesson.objects.filter(student__teacher = request.user).filter(endDate__gte=date(int(year), int(month), 1)).filter(startDate__lte=datetime.date(int(year), int(month), calendar.mdays[month]))
lessonList = []
qsList = list(qs)
for l in qsList:
if l.frequency == 0:
x = EachLesson()
x.lessonID = l.id
x.actualDate = l.startDate
x.student = l.student
lessonList.append(x)
else:
sd = next_date(l.startDate, l.frequency, datetime.date(int(year), int(month), 1))
while (sd <= date(int(year), int(month), calendar.mdays[month])):
x = EachLesson()
x.lessonID = l.id
x.actualDate = sd
x.student = l.student
lessonList.append(x)
sd += datetime.timedelta(recurrence)
return lessonList
假设为了这个例子,NewLesson和EachLesson在模型中具有相似的结构。
提前致谢,
答案 0 :(得分:4)
嗯,最重要的提示是你已经完成了一个getitem电话的唯一地方:mdays[month]
如果您必须将month
转换为其他地方的int
,则month
很可能是导致calendar.mdays[month]
错误的字符串
否则,您的回溯本身会在其他位置调用。我的钱在mdays[month]
,但由于其他地方有int(month)
。