Helio13 2 Denunciar mensagem Publicado 25 de Abril de 2013 Boas! Na minha aplicação quero ir buscar os os generos dos filmes á tabela generos e coloca-los num array para depois ir consultar, para ficar mais ou menos desta forma: [Drama]=id Mas não estou a conseguir...estou a tentar fazer da seguinte forma: genres = [] gen = Genre.objects.all() #print gen.GenreType for obj in gen: genres[obj.GenreType] = obj.id print genres[obj.GenreType] #print obj.id Mas está a dar o seguinte erro: list indices must be integers, not str Alguém me pode ajudar? O que estou a fazer mal? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
hmiguel 0 Denunciar mensagem Publicado 25 de Abril de 2013 (editado) Boas! Na minha aplicação quero ir buscar os os generos dos filmes á tabela generos e coloca-los num array para depois ir consultar, para ficar mais ou menos desta forma: [Drama]=id Mas não estou a conseguir...estou a tentar fazer da seguinte forma: genres = [] gen = Genre.objects.all() #print gen.GenreType for obj in gen: genres[obj.GenreType] = obj.id print genres[obj.GenreType] #print obj.id Mas está a dar o seguinte erro: list indices must be integers, not str Alguém me pode ajudar? O que estou a fazer mal? O erro é suficientemente claro... para ir buscar(ou colocar) um elemento qualquer a uma lista, tem que ser com inteiros, ex. genres[0], genres[1]...e não com strings. btw, olhando para o teu código, o melhor é guardar em dicionários. Do género: genres = {} gen = Genre.objects.all() #print gen.GenreType for obj in gen: genres[obj.id] = obj.GenreType print genres[obj.id] #print obj.id Editado 25 de Abril de 2013 por hmiguel "Homem que é Homem não usa Java!" Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Helio13 2 Denunciar mensagem Publicado 26 de Abril de 2013 (editado) Obrigado era isso mesmo, mas agora o problema é o seguinte: Quando tenho um genero novo, eu precisava que esse genero fosse inserido primeiro na tabela dos generos. Estou a tentar desta maneira: def csv_upload(request): if request.method == 'POST': genres = {} gen = Genre.objects.all() for obj in gen: print genres[obj.GenreType] file = csv.DictReader(request.FILES['file'], delimiter=',', quotechar='"') #data = csv.DictReader(request.FILES['file']) for line in file: report = Movie() if (genres[line["IdGenre"]] == 0): print genres[line["IdGenre"]] rep = Genre() rep.GenreType = line["IdGenre"] print rep.GenreType else: report.MovieTitle = line["MovieTitle"] print report.MovieTitle #report.IdGenre = line["genres[obj.GenreType]"] report.MovieYear = line["MovieYear"] report.MovieDuration = line["MovieDuration"] report.save() Dá-me o seguinte erro: c:/Projectos/Test/rest\views.py in csv_upload, line 32 Exception Value: 'Comedia E não sei o que estou a fazer mal, o que estou a fazer mal? Editado 26 de Abril de 2013 por Helio13 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
hmiguel 0 Denunciar mensagem Publicado 28 de Abril de 2013 Qual é a linha 32? "Homem que é Homem não usa Java!" Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Helio13 2 Denunciar mensagem Publicado 28 de Abril de 2013 Já consegui fazer o que queria,,, Muito obrigado pela ajuda. Cumprimentos Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites