Показывать данные с ListView с Джанго 1.8

Я использую Джанго 1.8 с Пайтоном 3.4, нуждаюсь в том, чтобы показать данные о таблице с ListView но он ничего не показывает мне и не показывает мне какую-то ошибку.

Здесь я оставляю им код:

models.py

class Tipo_almacen(models.Model):
      descripcion = models.CharField(max_length=50)

      class Meta:
         db_table = 'Tipo_almacen'
         verbose_name_plural = "Tipo de Almacenes"
         verbose_name = "Tipo de Almacen"

      def __str__(self):
          return self.descripcion

views.py

from django.shortcuts import render
from mantenimiento.forms import Tipo_almacenForm
from django.http import HttpResponseRedirect
from django.views.generic import ListView
from appkardex.models import Tipo_almacen

def menu(request):
    return render(request, 'main.html')    

class ListaTipoAlmacen(ListView):
    model = Tipo_almacen
    template_name = 'cruds/lista_tipo_almacen.html'

    def get_context_data(self, **kwargs):
        context = super(ListaTipoAlmacen, self).get_context_data(**kwargs)
        lista_tipo_almacen = Tipo_almacen.objects.all()
        context['lista_tipo_almacen'] = lista_tipo_almacen
        return context

urls.py

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', views.menu),
    url(r'^$', ListaTipoAlmacen.as_view(), name='lista_tipo_almacen')
] + static(settings.STATIC_URL)

main.html

<a href="{% url 'lista_tipo_almacen' %}">Tipo almacen</a></li>

lista_tipo_almacen.html

{% extends "main.html" %}

{% block contenido %}

   <h1>Tipo Almacen</h1>
   <ul>
      {% for lista in lista_tipo_almacen %}
        <li>{{ lista.descripcion }} </li>
      {% endfor %}
   </ul>

{% endblock %}

Ожидая Вашей готовой помощи.

1
задан 21.01.2016, 15:24
4 ответа

Назначенный по умолчанию ListView посылает список объектов модели, которую ты перемещаешь его в признак model, и в сдержись взятия с именем object_list ты не нуждаешься в том, чтобы использовать метод get_context_data я оставляю тебе пример.

views.py

class ListaTipoAlmacen(ListView):
    model = Tipo_almacen
    template_name = 'cruds/lista_tipo_almacen.html'

lista_tipo_almacen.html

    {% extends "main.html" %}

    {% block contenido %}

     <h1>Tipo Almacen</h1>
     <ul>
        {% for element in object_list %}
          <li>{{ element.descripcion }} </li>
        {% endfor %}
     </ul>

    {% endblock %}

Это все!, сейчас, если ты хочешь изменить имя переменной object_list, в виде используй еще один признак: context_object_name = 'lista_de_objetos' и в сдержись замени object_list из-за lista_de_objetos

2
ответ дан 24.11.2019, 14:58

Мы будем видеть, сначала, я думаю, что ты вредишь использование Совещаний, основанных на Классе, секунда, если я не болен, твою модель не называются список, но он называется Tipo_almacen, тогда он был бы для каждый Tipo_almacen в lista_tipo_almacen.

Попробуй это, таким образом, если он не удается, ты предупреждаешь меня.

1
ответ дан 24.11.2019, 14:58
  • 1
    я сделал, как ты показал меня, но равный nome не загружает ничего {% extends " main.html" %} {% block сдержанные %} < h1> Тип Almacen< / h1> < ul> {% for Tipo_almacen in lista_tipo_almacen %} < li> {{Tipo_almacen.descripcion}} < / li> {% endfor %} < / ul> {% endblock %} – Andres Vilca 21.01.2016, 15:26
  • 2
    Городской совет мой друг, совсем в ingl и # 233; s и в min и # 250; sculas, чтобы предотвращать проблемы. – SalahAdDin 30.01.2016, 08:25
  • 3
    Привет @AndresVilca, если он или любой другой ответ решил Вашу проблему, пожалуйста считай принимать clicando отметка check (в форме V под puntuaci и # 243; n ответа). Это показывает в сообщество, что ты нашел soluci и # 243; n и шага вы давать и # 225; reputaci и # 243; n в оба (в t и # 237; и тот, кто ответил). Конечно, у тебя нет никакого obligaci и # 243; n делания этого. – rnrneverdies 12.04.2016, 18:15

Интересный Mmm, назначенные по умолчанию ListView envГ - в объект или список в контексте как object_list, я вижу, что ты используешь одну funciГіn get_context_data, ты можешь использовать только object_list.

Пример:

{% extends "main.html" %}

{% block contenido %}

    <h1>Tipo Almacen</h1>
    <ul>
    {% for lista in object_list %}
        <li>{{ lista.descripcion }} </li>
    {% empty %}
        <p>No hay una lista de almacenes</p>
    {% endfor %}
    </ul>

{% endblock contenido %}

views.py:

from appkardex.models import Tipo_almacen
'''
Si tu modelo esta a la par de esta view usa:
from .models import Tipo_almacen
'''

class ListaTipoAlmacen(ListView):
    model = Tipo_almacen
    template_name = 'cruds/lista_tipo_almacen.html'

urls.py:

Комментирует унифицированный указатель ресурса, из-за которого он может давать тебе проблемы из-за того, что не закрывает с $:

urlpatterns = [
  url(r'^admin/', include(admin.site.urls)),
  #url(r'^', views.menu),
  url(r'^, ListaTipoAlmacen.as_view(), name='lista_tipo_almacen')
] + static(settings.STATIC_URL)
1
ответ дан 24.11.2019, 14:58

Если я не ошибаюсь проблема, это твои унифицированные указатели ресурса, эта линия:

url(r'^', views.menu),

Захвати все, из-за кого ты поместил ^ без больше чего-либо, у него должно бы быть окончание используя $.

Твои унифицированные указатели ресурса могли бы оставаться такими, согласно которому ты предложил тост в твоем коде:

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', views.menu),
    url(r'^lista/$', ListaTipoAlmacen.as_view(), name='lista_tipo_almacen')
] + static(settings.STATIC_URL)

Обновление

На твоем формуляре, ты должен перемещать это context, не достаточно импортировать это:

class ListaTipoAlmacen(ListView):
    model = Tipo_almacen
    template_name = 'cruds/lista_tipo_almacen.html'

    def get_context_data(self, **kwargs):
        context = super(ListaTipoAlmacen, self).get_context_data(**kwargs)
        lista_tipo_almacen = Tipo_almacen.objects.all()
        form = Tipo_almacenForm()
        context['lista_tipo_almacen'] = lista_tipo_almacen
        context['form'] = form
        return context

И renderizarlo в тебе сдержись:

{% extends "main.html" %}

{% block contenido %}

   <h1>Tipo Almacen</h1>
   <ul>
      {% for lista in lista_tipo_almacen %}
        <li>{{ lista.descripcion }} </li>
      {% endfor %}
   </ul>

   <form method="post">
       {% csrf_token %}
       {{ form.as_p }}
   </form>

{% endblock %}

Я рекомендую читать тебе:

0
ответ дан 24.11.2019, 14:58