Klasa nie ma kogut "Obiekty" w Django


from django.http import HttpResponse
from .models import Destination
def index(request):
boards = Destination.objects.all()
boards_names = list()
for Destination in boards:
boards_names.append(Destination.destinationtext)
response_html = ''.join(boards_names)
return HttpResponse(response_html)

Napisałem ten kod poniżej praktyki ram Django, ale otrzymuję następujące błędy przez Pilint:
E1101:Class 'Destination' has no 'objects' member
E0601:Using variable 'Destination' before assignment

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Masz dwa różne problemy, a nie tylko jeden, jak mówisz:
E1101: Klasa „Miejsce docelowe” nie ma elementu „obiektów”
: this

ostrzeżenie

co występuje, ponieważ
pylint
nie zna naszych specjalnych zmiennych Django. Wtyczka pylint, taka jak
pylint-django

,
https://github.com/PyCQA/pylint-django
Może sprawić, że ta sztuczka.
E0601: Korzystanie z zmiennej "miejsce docelowe" przed przypisaniem : W przypadku pętli zdefiniowano zmienną nazwaną miejsce docelowe . To nie tylko zła praktyka, ponieważ zmienne Pythona muszą znajdować się w
Lowercase_undenercore
, ale także

Przesadza klasę
Miejsce docelowe , a to powoduje ten błąd. Prawdopodobnie chciałeś zrobić coś takiego:
for d in boards:
# Or:
for destination in boards:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Napisałeś w swojej prezentacji:
for [b]Destination[/b] in boards:
# ...

Oznacza to, że python widzi miejsce docelowe jak

LAN.

zmienna, zmienna lokalna Ty

używają

przed wizytą.
Możesz zmienić nazwę zmiennej w pętli, aby rozwiązać problem, ale w rzeczywistości możesz uczynić ją bardziej elegancką i szybszą tutaj, używając
.values_list (..)
:
from django.http import HttpResponse
from .models import Destinationdef index(request):
response_html = ''.join( Destination.objects.[b]values_list('destinationtext', flat=True)[/b]
)
return HttpResponse(response_html)

Jednak nadal nie jestem pewien, czy to rozwiązuje problem, ponieważ
tekst docelowy
może zawierać kod HTML, który zostanie następnie pomieszany w odpowiedzi. Zwykle najlepiej jest używać szablonów.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się