Beispiel #1
0
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
Beispiel #2
0
 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)
         
         
Beispiel #3
0
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()
Beispiel #4
0
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})