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 的信心。
我已经研究了几天并找到了很多可能的解决方案,但是大多数教程或文档页面都超过一年了(官方的 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 的信心。