コード例 #1
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)
         
         
コード例 #2
0
ファイル: views.py プロジェクト: agneto23/SICOT
def ingresarcategoria1(request):

    if request.method=='POST':
        categoria=Categoria(cat_nombre=request.POST["txtNombre"],
                            cat_detalle=request.POST["txtDetalle"],

                            )
        categoria.save()

        return redirect('ingresarproducto')

    return render_to_response('ingresarcategoria1.html',context_instance=RequestContext(request))
コード例 #3
0
ファイル: views.py プロジェクト: agneto23/SICOT
def modificarcategoria(request,id):

    if request.method=='POST':

        if 'guardar' in request.POST:

            cate = Categoria(
                cat_id=id,
                cat_nombre=request.POST["cat_nombre"],
                cat_detalle=request.POST["cat_detalle"])
            cate.save()


    cate=Categoria.objects.get(pk=id)


    return render_to_response('modificarcategoria.html',{'cate':cate},context_instance=RequestContext(request))
コード例 #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})