简体   繁体   中英

why Index error at / list index out of range?

hello im having a problem with the index code in my views.py, aparrently the HTML index is out of range for some reason i dont understand, because before i wanted to make the page to add images as avatars work perfectly fine

the index.html is in a templates folder, inside the APP folder, and i created a media folder outside of the APP for storage of media this is the views.py

from django.http import HttpResponse
from django.shortcuts import render
from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import UpdateView, DeleteView, CreateView
from django.contrib.auth.views import LoginView, LogoutView
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin
from .forms import PosteoForm, SignUpForm, UserEditForm
from .models import Posteo, Avatar
from django.urls import reverse_lazy




# Create your views here.

def mostrar_index(request):
    
    imagenes = Avatar.objects.filter(user=request.user.id)

    return render(request, 'index.html', {'url': imagenes[0].images.url})

def mostrar_gallery(request):
    return render(request,'gallery.html')
    
def mostrar_contact(request):
    
    return render(request,'contact.html')


def cursoPost(request):
    
    return render(request,'Posts.html')


@login_required
def crear_post(request):

    if request.method == 'POST':

        posteo = PosteoForm(request.POST)

        print('posteo')

        if posteo.is_valid():
        
            data = posteo.cleaned_data
        
            posteo  = Posteo (titulo=data['titulo'], texto=data['texto'])

            posteo.save()

            return render(request,'index.html')

    else:

        posteo = PosteoForm()

        print('formulario')

    return render(request,'Posts.html',{'posteo':posteo})


def buscar_post(request):

    return render(request,'buscador.html')



def buscador (request):
    if request.GET.get ('titulo', False):

        titulo  = request.GET ['titulo']
        
        post = Posteo.objects.filter(titulo__icontains=titulo)

        return render (request, 'buscador.html',{'post':post})
        
    else:
        respuesta = 'no hay datos'
    
    return render (request, 'buscador.html', {'respuesta':respuesta})
    


class PosteoList(ListView):

    model = Posteo
    template_name = 'mostrar_post.html'

class PosteoDetail(DetailView):

    model = Posteo
    template_name = 'posteo_detalle.html' 


def base(request):

    return render(request,'base.html')



class PosteoDeleteView(LoginRequiredMixin, DeleteView):
    model = Posteo
    template_name = 'post_confirm_delete.html' 
    success_url = '/mostrarPost'
    

class PosteoUpdateView(LoginRequiredMixin, UpdateView):
    model = Posteo
    template_name = 'modificar_post.html' 
    success_url = '/mostrarPost'
    fields =['titulo', 'subtitulo','texto','nombre', 'email']
    

class SignUpView(CreateView):
    form_class = SignUpForm
    success_url = reverse_lazy('index')
    template_name = "registro.html"

def editar_usuario(request):
    usuario = request.User
    if request.method == 'POST':

        usuario_form = UserEditForm(request.POST)

        if usuario_form.is_valid():
            informacion = usuario_form.cleaned_data
            usuario.username = informacion['username']
            usuario.email = informacion['email']
            usuario.password1 = informacion['password1']
            usuario.password2 = informacion ['password2']

            usuario.save()

            return render(request,'inicio.html')

        else:
            usuario_form = UserEditForm(initial={'username': usuario.username, 'email': usuario.email})

        return render(request, 'admin_update.html', {'form': usuario_form, 'usuario': usuario})

class AdminLoginView(LoginView):

    template_name = 'login.html'

class AdminLogoutView(LogoutView):

    template_name = 'logout.html'


the index.html

<!DOCTYPE html>
<html lang="en">


<head>
  {% load static %}
  <!-- basic -->
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <!-- mobile metas -->
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="viewport" content="initial-scale=1, maximum-scale=1">
  <!-- site metas -->
  <title>Entro</title>
  <meta name="keywords" content="">
  <meta name="description" content="">
  <meta name="author" content="">
  <!-- fevicon -->
  <!-- bootstrap css -->
  <link rel="stylesheet" href={% static "css/bootstrap.min.css" %}>
  <!-- style css -->
  <link rel="stylesheet" href={% static "css/style.css" %}>
  <!-- Responsive-->
  <link rel="stylesheet" href={% static "css/responsive.css" %}>  
  <!-- Scrollbar Custom CSS -->
  <link rel="stylesheet" href={% static "css/jquery.mCustomScrollbar.min.css" %}>
  <!-- Tweaks for older IEs-->
  <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" media="screen">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]-->
</head>
<!-- body -->

<body class="main-layout">
  <!-- loader  -->
  <div class="loader_bg">
    <div class="loader"><img src={% static "images/loading.gif" %} alt="#" /></div>
  </div>
  <!-- end loader -->
  <!-- header -->
  <header>
    <!-- header inner -->
    <div class="header-top">
      <div class="header">
        <div class="container">
          <div class="row">
            <div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col logo_section">
              <div class="full">
                <div class="center-desk">
                  <!-- <div class="logo">
                    <a href="index.html"><img src={% static "images/logo.png" %} alt="#" /></a>
                  </div> --> <!-- boton izquierdo de ticket -->
                </div>
              </div>
            </div>
            <div class="col-xl-10 col-lg-10 col-md-10 col-sm-9">
              
              <div class="menu-area">
                <div class="limit-box">
                  <nav class="main-menu ">
                    <ul class="menu-area-main">
                      <li class="active"> <a href="{% url 'index' %}">Inicio</a> </li>
                      <li> <a href="{% url 'mostrarpost' %}">Mostrar Posts</a> </li>
                      <li> <a href="{% url 'crear' %}">Crear Posts</a> </li>
                      <li> <a href="{% url 'buscar' %}">Buscar Posts</a> </li>
                      <li> <a href="{% url 'Galeria'%}">Galeria</a> </li>
                      <li> <a href="{% url 'base'%}">base</a> </li>
                      <li> <a href="{% url 'Sign Up'%}">Usuario</a> </li>
                      <li> <a class="last_manu" href="{% url 'buscar' %}"><img src={% static "images/search_icon.png" %} alt="#" /></a> </li>

                      {% if request.user.is_authenticated %}
                      <li> <a href="{% url 'Logout'%}">Logout</a> </li>
                      {% else %}
                      <li> <a href="{% url 'Login'%}">Login</a> </li>
                      {% endif %}
                      
                    </ul>
                  </nav>
                
              </div> 
            </div>
          </div>
        </div>
      </div>
    </div>
    <!-- end header inner -->
    
    <!-- end header -->
    <section class="slider_section">
      <div id="myCarousel" class="carousel slide" data-ride="carousel">
        <ol class="carousel-indicators">
          <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
          <li data-target="#myCarousel" data-slide-to="1"></li>
          <li data-target="#myCarousel" data-slide-to="2"></li>
        </ol>
        <div class="carousel-inner">
          <div class="carousel-item active">

            <div class="container">
              <div class="carousel-caption">
                <div class="row">
                  <div class="col-md-12">
                    <div class="text-bg">
                      

                      {% if request.user.is_authenticated %}
                      <img src="{{url}}" alt="">
                      <h1>Hola {{user.username}} como te va? </h1>
                      <p>Si deseas deslogearte haz click aqui! </p>
                      <li> <a href="{% url 'Logout'%}">Logout</a> </li>
                      {% else %}
                    
                      <span>La web</span>
                      <h1>de musica para vos</h1>
                      <p>Esta es una web diseñada para dejar al alcance de tus manos lo que necesitas para tu musica</p>
                      <li> <a href="{% url 'Login'%}">Login</a> </li>
                      {% endif %}
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div class="carousel-item">

            <div class="container ">
              <div class="carousel-caption">

                <div class="row">
                  <div class="col-md-12">
                    <div class="text-bg">
                      <span>La web</span>
                      <h1>de musica para vos</h1>
                      <p>Haz click en los botones para crear algun posteo o ver los posteos existentes</p>
                      <a href="{% url 'crear' %}">Crea un post</a> <a href="{% url 'CursoPost' %}">Post Musicales </a>
                    </div>
                  </div>

                </div>
              </div>
            </div>

          </div>


          <div class="carousel-item">

            <div class="container">
              <div class="carousel-caption ">
                <div class="row">
                  <div class="col-md-12">
                    <div class="text-bg">
                      <span>La web</span>
                      <h1>de musica para vos</h1>
                      <p>y algo más..</p>
                      <a href="{% url 'crear' %}">Crea un post</a> <a href="{% url 'CursoPost' %}">Post Musicales </a>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
    
      <a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev">
    <i class="fa fa-long-arrow-left" aria-hidden="true"></i>
    
    </a>
    <a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next">
        <i class="fa fa-long-arrow-right" aria-hidden="true"></i>
      
    </a>
  </div>
    
  

</section>
</div>
</header>



<!-- about  -->
<div id="about" class="about">
  <div class="container">
    <div class="row display_boxflex">
      <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
        <div class="about-box">
          <h2>Acerca de Nosotros</h2>
          <p>Somos dos estudiantes del curso de Python de Coder House y este es el blog de presentacion de proyecto final</p>
          <a href="Javascript:void(0)">Leer más</a>
        </div>
      </div>
      <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
        <div class="about-box">
          <figure><img src={% static "images/about.png" %} alt="#" /></figure>
        </div>
      </div>
    </div>

  </div>
</div>
<!-- end abouts -->




<!-- upcoming -->

<!-- end upcoming -->
{% block codigoDinamico %}
    
{% endblock %}



<!-- Gallery -->
<!--
  
<div id="gallery" class="Gallery">
  <div class="container"> 
    <div class="row display_boxflex">
      <div class="col-xl-8 col-lg-8 col-md-8 col-sm-12">
        <div class="row">
          <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 margi_bott">
            <div class="Gallery_img">
              <figure><img src={% static "images/Gallery1.jpg"%} alt="#"/></figure>
            </div>
            <div class="hover_box">
            
              <ul class="icon_hu">
                <h3>Music night</h3>
                <li><a href="#"><img src={% static "icon/h.png"%} alt="#"/></a></li>
                <li><a href="#"><img src={% static "icon/h.png"%} alt="#"/></a></li>
              </ul>
            </div>
          </div>
          <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 margi_bott">
            <div class="Gallery_img">
              <figure><img src={% static "images/Gallery2.jpg"%} alt="#"/></figure>
            </div>
            <div class="hover_box">
            
              <ul class="icon_hu">
                <h3>Music night</h3>
                <li><a href="#"><img src={% static "icon/h.png"%} alt="#"/></a></li>
                <li><a href="#"><img src={% static "icon/h.png"%} alt="#"/></a></li>
              </ul>
            </div>
          </div>
          <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 margi_bott1">
            <div class="Gallery_img">
              <figure><img src={% static "images/Gallery3.jpg"%} alt="#"/></figure>
            </div>
            <div class="hover_box">
            
              <ul class="icon_hu">
                <h3>Music night</h3>
                <li><a href="#"><img src={% static "icon/h.png"%} alt="#"/></a></li>
                <li><a href="#"><img src={% static "icon/h.png"%} alt="#"/></a></li>
              </ul>
            </div>
          </div>
          <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
            <div class="Gallery_img">
              <figure><img src={% static "images/Gallery4.jpg"%} alt="#"/></figure>
            </div>
            <div class="hover_box">
            
              <ul class="icon_hu">
                <h3>Music night</h3>
                <li><a href="#"><img src={% static "icon/h.png"%} alt="#"/></a></li>
                <li><a href="#"><img src={% static "icon/h.png"%} alt="#"/></a></li>
              </ul>
            </div>
          </div>
        </div>
      </div>
      <div class="col-xl-4 col-lg-4 col-md-4 col-sm-12">
        <div class="Gallery_text">
          <div class="titlepage">
            <h2>Gallery</h2>
          </div>
          <p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to usin</p>
          <a href="Javascript:void(0)">Read More</a>
        </div>
      </div>
    </div>
  </div>
</div>
--> 
<!-- end Gallery --> 




    <!--  footer -->
    <footr>
      <div class="footer ">
        <div class="container">
          <div class="row">
            <div class="col-md-12">
              <form class="contact_bg">
            <div class="row">
              <div class="col-md-12">
                <div class="titlepage">
                  <h2>Contactanos</h2>
                </div>
                <div class="col-md-12">
                  <input class="contactus" placeholder="Tu nombre" type="text" name="Your Name">
                </div>
                <div class="col-md-12">
                  <input class="contactus" placeholder="Tu Email" type="text" name="Your Email">
                </div>
                <div class="col-md-12">
                  <input class="contactus" placeholder="Numero de telefono" type="text" name="Your Phone">
                </div>
                <div class="col-md-12">
                  <textarea class="textarea" placeholder="Mensaje" type="text" name="Message"></textarea>
                </div>
                <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12">
                  <button class="send">Enviar</button>
                </div>
              </div>
            </div>
            </form>
            
            </div>
            <div class="col-md-12 border_top">
              <form class="news">
              <h3>Newsletter</h3>
                <input class="newslatter" placeholder="ENTER YOUR MAIL" type="text" name=" ENTER YOUR MAIL">
                <button class="submit">Subscribe</button>
              </form>
            </div>
            <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 ">
              <div class="row">
                <!-- <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 ">
                  <div class="address">
                    <ul class="loca">
                      <li>
                        <a href="#"><img src={% static "icon/loc.png" %}alt="#" /></a>Locations
                  
                        <li>
                        
                            <a href="#"><img src={% static "icon/call.png"%} alt="#" /></a>+12586954775 </li>
                          <li>
                            <a href="#"><img src={% static "icon/email.png"%} alt="#" /></a>demo@gmail.com </li>
                          </ul>
                        
                        -->
                        </div>
                      </div>
                      <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 ">
                          <ul class="social_link">
                            <li><a href="#"><i class="fa fa-facebook" aria-hidden="true"></i></a></li>
                            <li><a href="#"><i class="fa fa-twitter" aria-hidden="true"></i></a></li>
                            <li><a href="#"><i class="fa fa-linkedin-square" aria-hidden="true"></i></a></li>
                            <li><a href="#"><i class="fa fa-instagram" aria-hidden="true"></i></a></li>
                          </ul>
                      </div>
                    </div>
                  </div>

                </div>

              </div>
              <div class="container">
              <div class="copyright">
              
                  <p>Copyright 2019 All Right Reserved By <a href="https://html.design/">Free  html Templates</a></p>
                </div>
              </div>
            </div>
          </footr>
          <!-- end footer -->
          <!-- Javascript files-->
          <script src={% static "js/jquery.min.js"%}></script>
          <script src={% static "js/popper.min.js"%}></script>
          <script src={% static "js/bootstrap.bundle.min.js"%}></script>
          <script src={% static "js/jquery-3.0.0.min.js"%}></script>
          <script src={% static "js/plugin.js"%}></script>
          <!-- sidebar -->
          <script src={% static "js/jquery.mCustomScrollbar.concat.min.js"%}></script>
          <script src={% static "js/custom.js"%}></script>
          <script src="https:cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.js"></script>




</body>

</html>
def mostrar_index(request):
    imagenes = Avatar.objects.filter(user=request.user.id)
    return render(request, 'index.html', {'avatar': imagenes})
{% if request.user.is_authenticated %}
    {% if avatar %}
        <img src="{{avatar.images.url}}" alt="">
    {% else %}
        <img src="{% static 'default/image.ext' %}" alt="">
    {% endif %}
    <h1>Hola {{user.username}} como te va? </h1>
    <p>Si deseas deslogearte haz click aqui! </p>
    <li> <a href="{% url 'Logout'%}">Logout</a> </li>
{% else %}
...
{% endif %}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM