Ir para o conteúdo
Helio13

Construir array em Django

Mensagens Recomendadas

Helio13    2
Helio13

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


Link para a mensagem
Partilhar noutros sites
hmiguel    0
hmiguel

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 por hmiguel

"Homem que é Homem não usa Java!"

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Helio13    2
Helio13

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 por Helio13

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.