簡體   English   中英

為什么索引錯誤在/列表索引超出范圍?

[英]why Index error at / list index out of range?

你好,我的 views.py 中的索引代碼有問題,顯然 HTML 索引由於某種我不明白的原因超出范圍,因為在我想讓頁面添加圖像之前,頭像工作得很好

index.html 在 APP 文件夾內的模板文件夾中,我在 APP 外部創建了一個媒體文件夾用於存儲媒體這是 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'


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 %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM