Django 1.7 和 Zinnia(稳定版)——如何将我的博客设置为私有且仅限邀请?

Django 1.7 & Zinnia (stable) - How can I make my blog private and invite-only?

我已经研究了几天并找到了很多可能的解决方案,但是大多数教程或文档页面都超过一年了(官方的 django 内容除外)并且适用于旧版本的 django ..或者他们只是没有很清楚地解释事情。我对 Django 和 python 比较陌生,所以我需要更多的解释,大多数 tuts 似乎都在给出。

基本上我正在做的是制作一个私人文件存档,前面有一个博客。非会员只能看到一个登录页面,只有通过邀请码注册并登录才能看到网站的其余部分。

我目前将 Zinnia 用作简单的博客应用程序,并自定义其默认模板以满足我的需要。

有谁知道我该如何实现这些功能?

编辑:我正在按照建议完成教程 'Handling Authentication & Authorization',在我必须创建基于 class 的视图之前,一切似乎都很顺利。由于本教程使用的是某种示例 'contact list' 类型的应用程序,而我正在管理一个 zinnia 博客,我想知道您是否可以帮助我找出正确的 classes/models 来使用。我的 views.py 文件目前如下,这可能是不正确的:

#                           blog/views.py

from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator

class LoggedInMixin(object):

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(LoggedInMixin, self).dispatch(*args, **kwargs)

class ListBlogView(LoggedInMixin, ListView):

    model = Entry
    template_name = 'base.html'

    def get_queryset(self):

        return Entry.objects.filter(owner=self.request.user)

不确定我将如何更改此代码以匹配我正在尝试执行的操作。我很确定 'model'、'template_name' 和 'return' 应该对应于百日草相关的东西,但我在这里真的很困惑。

在我看来,您可以使用 LoginRequiredMiddleware 来检查在每个可能的视图中都经过身份验证的用户。如果没有,则将他重定向到登录页面。

https://djangosnippets.org/snippets/1179/

编辑:

关于对用户进行身份验证,您应该查看这些教程:

How to properly use the django built-in login view

homepage login form Django

http://effectivedjango.com/tutorial/authzn.html

http://dustindavis.me/django-login-form-on-every-page/

完成它们需要一些时间,但您应该多加练习以增强对 Python 和 Django 的信心。