def nuevo_usuario(request): result = None if request.method == 'POST': formulario = UserCreationForm(request.POST) if formulario.is_valid: formulario = formulario.save() usuario = Usuario(cuenta_id=formulario.id, genero='', edad=None, pais='') usuario.save() result = HttpResponseRedirect('/acceder') else: formulario = UserCreationForm() result = render(request, 'modelo.html', {'titulo': 'Registro', 'formulario': formulario}) return result
def handle(self, *args, **options): User.objects.create_superuser(username='******', password='******', email='*****@*****.**') moviesPath = os.path.join(STATIC_ROOT,"data/u.item") usersPath = os.path.join(STATIC_ROOT,"data/u.user") genresPath = os.path.join(STATIC_ROOT,"data/u.genre") ratingsPath = os.path.join(STATIC_ROOT,"data/u.data") occupationsPath= os.path.join(STATIC_ROOT,"data/u.occupation") movies = readMovieFile(moviesPath) users = readUserFile(usersPath) genres = readGenreFile(genresPath) ratings = readRatingFile(ratingsPath) occupations = readOccupationFile(occupationsPath) generos = [] for genre in genres: generos.append(Categoria(nombre = genre[0],idCategoria = int(genre[1]))) Categoria.objects.bulk_create(generos) peliculas = [] categoriasPeliculas = [] for movie in movies: peliculas.append(Pelicula(idPelicula = int(movie[0]),titulo = movie[1],fechaDeEstreno = datetime.strptime(movie[2],"%d-%b-%Y"), imdbURL = movie[3])) for i,hasGenero in enumerate(movie[4]): if int(hasGenero): if int(movie[0])-1<266: categoriasPeliculas.append(CategoriaPelicula(idCategoria=generos[i],idPelicula=peliculas[int(movie[0])-1])) else: categoriasPeliculas.append(CategoriaPelicula(idCategoria=generos[i],idPelicula=peliculas[int(movie[0])-2])) Pelicula.objects.bulk_create(peliculas) CategoriaPelicula.objects.bulk_create(categoriasPeliculas) ocupaciones = [] for occupation in occupations: ocupaciones.append(Ocupacion(nombre = occupation)) Ocupacion.objects.bulk_create(ocupaciones) usuarios = [] for user in users: usuarios.append(Usuario(idUsuario=int(user[0]),edad=int(user[1]),sexo=user[2],ocupacion = Ocupacion.objects.get(nombre=user[3]),codigoPostal=user[4])) Usuario.objects.bulk_create(usuarios) puntuaciones = [] ip = 0 for rating in ratings: ip+=1 if ip%1000==0: print(ip) if int(rating[1]) != 267: tiempo = datetime.fromtimestamp(int(rating[3])) puntuaciones.append(Puntuacion(idUsuario=Usuario.objects.get(idUsuario = int(rating[0])),idPelicula = Pelicula.objects.get(idPelicula = int(rating[1])), puntuacion = int(rating[2]), fecha=tiempo)) Puntuacion.objects.bulk_create(puntuaciones)
def cargar_usuarios(): print 'Cargando usuarios' with open(RUTA + '/userid-profile.tsv') as usuarios: usuarios.readline() usuario = usuarios.readline() cont = 0 while usuario: usuario = usuario.split('\t') usuario[4] = usuario[4].strip() edad = usuario[2] if usuario[2] else None cuenta = User(username=usuario[0], password=usuario[0]) cuenta_bd = User.objects.filter(username=usuario[0]) if not cuenta_bd: cuenta.save() usuario = Usuario(cuenta_id=cuenta.id, genero=usuario[1].upper(), edad=edad, pais=usuario[3]) usuario.save() cont += 1 print cont usuario = usuarios.readline()
def cargar_datos(request): Categoria.objects.all().delete() Receta.objects.all().delete() Usuario.objects.all().delete() Valoracion.objects.all().delete() module_dir = os.path.dirname(__file__) with open(module_dir + "/data/caterogias.txt", "r", encoding="utf8", errors="ignore") as f: print("Cargando categorias...") lines = f.read().splitlines() categorias = [] for line in lines: if line == "": continue categoria = line.split("||") categoria_id = categoria[0] titulo = categoria[1] descripcion = categoria[2] categorias.append( Categoria(categoria_id=categoria_id, titulo=titulo, descripcion=descripcion)) Categoria.objects.bulk_create(categorias) print("...categorias cargadas!") with open(module_dir + "/data/recetas.txt", "r", encoding="utf8", errors="ignore") as f: print("Cargando recetas...") lines = f.read().splitlines() recetas = [] for line in lines: if line == "": continue receta = line.split("||") id_receta = receta[0] categoria_id = receta[1] titulo = receta[2] pdf_url = receta[3] dificultad = receta[4] cocina = receta[5] vegetariana = receta[6] celiacos = receta[7] foto = receta[8] ingredientes = receta[9] pasos = receta[10] recetas.append( Receta(id_receta=id_receta, categoria_id=categoria_id, titulo=titulo, dificultad=dificultad, pdf_url=pdf_url, cocina=cocina, vegetariana=vegetariana, celiacos=celiacos, foto=foto, ingredientes=ingredientes, pasos=pasos)) Receta.objects.bulk_create(recetas) print("...recetas cargadas!") with open(module_dir + "/data/usuarios.txt", "r", encoding="utf8", errors="ignore") as f: print("Cargando usuarios...") lines = f.read().splitlines() usuarios = [] for line in lines: if line == "": continue usuario = line.split("||") id_usuario = usuario[0] nombre = usuario[1] sexo = usuario[2] usuarios.append( Usuario(id_usuario=id_usuario, nombre=nombre, sexo=sexo)) Usuario.objects.bulk_create(usuarios) print("...usuarios cargadas!") ## https://www.generatedata.com/ with open(module_dir + "/data/valoracion.txt", "r", encoding="utf8", errors="ignore") as f: print("Cargando valoraciones...") lines = f.read().splitlines() valoraciones = [] for line in lines: if line == "": continue valoracion = line.split("|") puntuacion = valoracion[0] receta_id = valoracion[1] usuario_id = valoracion[2] valoraciones.append( Valoracion(puntuacion=puntuacion, receta_id=receta_id, usuario_id=usuario_id)) Valoracion.objects.bulk_create(valoraciones) print("...valoraciones cargadas!") recetas = Receta.objects.annotate( avg_rating=Avg("valoracion__puntuacion")).order_by("-avg_rating")[:3] return render(request, "users/load_data_success.html", {"recetas": recetas})