Не могу вызвать / передать данные из базы данных django на сайт, используя встроенную модель auth и созданную мной модель, к которой я не могу сделать запрос.
Любая помощь будет оценена по достоинству, в основном я новичок, и у меня возникают трудности с получением данных из моей базы данных. Я использовал встроенный метод auth из django, который вроде бы работает нормально, так как я могу получить данные пользователя. Однако, как только я хочу использовать свой класс Member, который я сделал в модели, ничего не работает. Не удается вывести все его данные. При просмотре страницы администратора я вижу таблицу аутентификации и авторизации и мою таблицу Members, созданную в models.py.
Когда я пытаюсь передать в контекст, однако ничего не отображается.
Мой index.html
{% block content %}
{% if user.is_authenticated %}
Hi {{ user.username }}!
Hi {{ user.email }}!
<p><a href="{% url 'logout' %}">Log Out</a></p>
{% else %}
<p>You are not logged in</p>
Hi {{ all }}!
<a href="{% url 'login' %}">Log In</a>
{% endif %}
{% endblock %}
{% block title %}Home{% endblock %}
Мой Views.py
from django.shortcuts import render
from .models import Member
# Create your views here.
def index(request):
all_members = Member.objects.all
return render(request, 'index.html', context = {'all':all_members})
def ethos(request):
return render(request, 'ethos.html', {})
Models.py
from django.db import models
from phonenumber_field.modelfields import PhoneNumberField
# Create your models here.
class Member(models.Model):
phoneNumber = PhoneNumberField()
firstName = models.CharField(max_length=50)
lastName = models.CharField(max_length=100)
jobDesc = models.CharField(max_length=200)
yearsExperience = models.IntegerField()
def __str__(self):
return self.firstName + ' ' + self.lastName
Я могу отобразить имя пользователя из auth на index. Но все, что связано с классом Member, который будет отображаться, когда пользователь выходит из системы, не отображается.
У меня есть искушение начать с нуля, но время - это элемент, а реализация на этом этапе уже оказалась сложной в некоторых сценариях.
нужно несколько небольших изменений, во-первых, для объекта user нужно брать его из запроса, {{request.user}} и небольшая ошибка при вызове данных из базы данных:
def index(request):
all_members = Member.objects.all() # here the () !
return render(request, 'index.html', context = {'all':all_members})
в шаблоне:
{% block content %}
{% if request.user.is_authenticated %}
Hi {{ request.user.username }}!
Hi {{ request.user.email }}!
<p><a href="{% url 'logout' %}">Log Out</a></p>
{% else %}
<p>You are not logged in</p>
Hi! {% for person in all %}<p>{{person}}</p>{% endfor %}
<a href="{% url 'login' %}">Log In</a>
{% endif %}
{% endblock %}
{% block title %}Home{% endblock %}
Проблема заключалась в URL-адресах, следуя руководству, я установил шаблон для рендеринга template_as_view, а не view.