функция 'объект не имеет атрибутов' объектов - PullRequest
1 голос
/ 08 ноября 2019

Я пытаюсь перебрать свою базу данных на основе учебника, который я выполняю, однако, когда я захожу на страницу приложения «списки», я получаю Error: AttributeError at /listings/ - 'function' object has no attribute 'objects'

Я уже пытался присвоить переменной другое имятаким образом, это не разделяет имя с моделью, но независимо от того, что я делаю. Я все еще получаю ошибки

Так что это мой views.py из приложения списков

from django.shortcuts import render
from listings.models import listing 
# Create your views here.


def index(request):
  listings = listing.objects.all()

  context = {
    'patients' : listings
  }
  return render(request, 'listings/listings.html')

def listing(request):
  return render(request, 'listings/listing.html')

Это мой urls.py

from django.urls import path 

from .import views

urlpatterns = [
  path('', views.index, name ='listings'),
  path('<int:listing_id>', views.listing, name ='listing'),

Здесь я зацикливаюсьи вменяя данные в заданный формат

 {% if listings %}
        {% for listing in listings %}
        <div class="col-md-6 col-lg-4 mb-4">
          <div class="card listing-preview">
            <div class="card-body">
              <div class="listing-heading text-center">
                <h4 class="text-primary">Jane Doe</h4>
                <p>
                  <i class="fas fa-map-marker text-secondary"></i> Bishopstown Co,Cork</p>
              </div>
              <hr>
              <div class="row py-2 text-secondary">
                <div class="col-6">
                  <i class="fas fa-asterisk"> Risk:</i> Low</div>
              </div>
              <hr>
              <div class="row text-secondary pb-2">
                <div class="col-6">
                  <i class="fas fa-clock"></i> 2 days ago</div>
              </div>
              <hr>
              <a href="listing.html" class="btn btn-primary btn-block">More Info</a>
            </div>
          </div>
        </div>
        {% endfor %}
      {% else %}  
        <div class="col-md-12">
          <p>No Patients</p>
        </div>
      {% endif %}

Я ожидал увидеть одну запись в своей базе данных, но вместо этого я получил Error: AttributeError at /listings/ - 'function' object has no attribute 'objects' и request <WSGIRequest: GET '/listings/'>

1 Ответ

1 голос
/ 08 ноября 2019

Вы определили функцию с именем listing, поскольку она определена после импорта, поэтому она примет ее. Действительно, мы видим:

from listings.models import <s>listing</s>
# Create your views here.


def index(request):
  listings = <b>listing</b>.objects.all()

  context = {
    'patients' : listings
  }
  return render(request, 'listings/listings.html')

def <b>listing</b>(request):
  return render(request, 'listings/listing.html')

Вы можете решить проблему, импортировав ее локально:

# Create your views here.


def index(request):
  from listings.models import <b>listing</b>
  listings = <b>listing</b>.objects.all()

  context = {
    'patients' : listings
  }
  return render(request, 'listings/listings.html')

def listing(request):
  return render(request, 'listings/listing.html')

Но настоятельно рекомендуется использовать PerlКейс для моделей Джанго (и классов в целом). Поэтому вам, вероятно, следует переименовать модель listing в Listing.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...