почему список пользователей не отображается в шаблоне django? - PullRequest
1 голос
/ 27 мая 2020

моя цель - показать список пользователей в шаблоне в django. но он не отображает пользователей.

accounts / models.py:

class CustomUser(AbstractUser):
    age = models.PositiveIntegerField(null=True, blank=True)
    name = models.CharField(max_length=200, blank=True)

accounts / admin.py:

class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm
    form = CustomUserChangeForm
    model = CustomUser
    list_display = ['email', 'username', 'age', 'is_staff', ]
admin.site.register(CustomUser, CustomUserAdmin)

accounts / form.py:

class CustomUserCreationForm(UserCreationForm):
    class Meta(UserCreationForm.Meta):
        model = CustomUser
        fields = UserCreationForm.Meta.fields + ('age',)
class CustomUserChangeForm(UserChangeForm):
    class Meta:
        model = CustomUser
        fields = UserChangeForm.Meta.fields

accounts / views.py:

class SignUpView(CreateView):
    form_class = CustomUserCreationForm
    success_url = reverse_lazy('login')
    template_name = 'signup.html'
class UsersView(TemplateView):
    template_name='homepage.html'
    def get_context_data(self,**kwargs):
        context = super(UsersView,self).get_context_data(**kwargs)
        context['object_list'] = CustomUser.objects.all()
        return context

и blogapp / urls.py:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/',include('accounts.urls')),
    path('accounts/',include('django.contrib.auth.urls')),
    path('',TemplateView.as_view(template_name='homepage.html'),name='homepage'),
]

templates / homepage. html:

{% block content %}
<h1>Online users</h1>
<ul>
    {% for user in object_list %}
        <li class="user">{{ user }}</li>
    {% endfor %}
</ul>
{% endblock content %}

когда я запускаю python manage.py runserver, он просто показывает строку заголовка Online users, но нет списка пользователей. Я создал трех пользователей в админке, но в шаблоне ничего не отображается, и ошибки нет. no list in the template

не могли бы вы мне помочь?

1 Ответ

0 голосов
/ 30 мая 2020

Я нашел решение.

в blogapp / urls.py, мне нужно изменить это:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('accounts.urls')), #here is the change...delete accounts/
    path('accounts/',include('django.contrib.auth.urls')),
    path('',TemplateView.as_view(template_name='homepage.html'),name='homepage'),
]

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

всем спасибо

...