отображать данные из БД в django - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь получить данные из БД и отобразить их на экране, но вывод пуст. Вот моя функция

from django.shortcuts import render
from django.http import HttpResponse
from pages.models import Contact
# from django.views import View
# Create your views here.
def home(request):
  return render(request, 'index.html', {'title':'Home Page'})
def contact(request):

  if(request.method == 'POST'):
    data = Contact(
      name = request.POST['name'],
      email = request.POST['email'], 
      address = request.POST['address'],
      city = request.POST['city'],
      zipcode = request.POST['zipcode'],  

    )
    data.save()

  dbdata = Contact.objects.all()
  return render(request, 'contact.html',  {'title':'Contact Page','row':dbdata})

Вот мой шаблон и отображение данных в этой таблице

  <tbody>

            {% for row in rows %}
            <tr>
                <th>{{row.name}}</th> 
                <th>{{row.emai}}</th>
                <th>{{row.address}}</th>
                <th>{{row.city}}</th>
                <th>{{row.zipcode}}</th>
            </tr>
        {%endfor%} 
        </tbody>

Я новичок в django. А также, пожалуйста, скажите мне, как отлаживать код в django.

Ответы [ 2 ]

4 голосов
/ 03 февраля 2020

произошла ошибка при передаче контекста .. вы используете ключ строка в контексте. Но вы вызываете строки в для l oop .change ключ строка до строк . и сохраните для l oop как есть.

здесь измените в передаваемом контексте диктативный ключ

return render(request, 'contact.html',  {'title':'Contact Page','rows':dbdata})

, если это работает, тогда дайте мне знать ... .

1 голос
/ 03 февраля 2020

замените следующий код в view.py [вы только что допустили ошибку в имя строки ]

убедитесь, что ваш код выровнен правильно

from django.shortcuts import render
from django.http import HttpResponse
from pages.models import Contact
# from django.views import View
# Create your views here.
def home(request):
  return render(request, 'index.html', {'title':'Home Page'})
def contact(request):

  if(request.method == 'POST'):
    data = Contact(
      name = request.POST['name'],
      email = request.POST['email'], 
      address = request.POST['address'],
      city = request.POST['city'],
      zipcode = request.POST['zipcode'],  

    )
    data.save()

    dbdata = Contact.objects.all()
    return render(request, 'contact.html',  {'title':'Contact Page','rows':dbdata})

и добавьте следующий код в HTML

 <tbody>
        {% for row in rows %}
             <tr>
                <th>{{row.name}}</th> 
                <th>{{row.emai}}</th>
                <th>{{row.address}}</th>
                <th>{{row.city}}</th>
                <th>{{row.zipcode}}</th>
            </tr>
        {%endfor%}
</tbody>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...