Я работаю над системой управления счетами, в которой пользователь может добавлять данные счетов-фактур, и они будут сохраняться в базе данных, и всякий раз, когда пользователь вошел в систему, данные появятся на домашней странице, но каждый раз, когда пользователь выходит из системы и пытается получить доступ к домашней странице, но он дает следующее ошибка.
TypeError at /
'AnonymousUser' object is not iterable
я пробовал AnonymousUser.is_authenticated
метод, но все еще не работает.
я хочу, если пользователь вошел в систему, тогда home.html
должен открыться в противном случае intro.html
вот мой код views.py
from django.shortcuts import render
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from django.views.generic import (
ListView,
DetailView,
CreateView,
UpdateView,
DeleteView
)
from .models import Invoicelist
def home(request):
if request.user.is_authenticated():
context = {
'invoices': Invoicelist.objects.all()
}
return render(request, 'invoicedata/home.html', context)
else:
return render(request, 'invoicedata/intro.html', context)
home. html
{% extends "invoicedata/base.html" %}
{% block content %}
{% for invoice in invoices %}
<article class="media content-section">
<div class="media-body">
<div class="article-metadata">
<small class="text-muted">{{ invoice.date_posted|date:"F d, Y" }}</small>
<h2><a class="article-title" href="{% url 'invoice-detail' invoice.id %}">{{ invoice.issuer }}</a></h2>
</div>
<p class="article-content">{{ invoice.invoice_number }}</p>
<p class="article-content">{{ invoice.date }}</p>
<p class="article-content">{{ invoice.amount }}</p>
<p class="article-content">{{ invoice.currency }}</p>
<p class="article-content">{{ invoice.other }}</p>
<div class="article-metadata">
<small class="text-muted">{{ invoice.author }}</small>
</div>
</div>
</article>
{% endfor %}
{% endblock content %}
intro. html
{% extends "invoicedata/base.html" %}
{% block content %}
<h2>login to your portal for great auditing services</h2>
{% endblock content %}