2011-07-20 13 views

答えて

5

ジャンゴフラットページモデルはregistration_requiredブールフィールドを持っています。これをTrueに設定すると、ログインしているユーザーだけがページを表示できます。

https://code.djangoproject.com/browser/django/trunk/django/contrib/flatpages/models.py

class FlatPage(models.Model): 
    url = models.CharField(_('URL'), max_length=100, db_index=True) 
    title = models.CharField(_('title'), max_length=200) 
    content = models.TextField(_('content'), blank=True) 
    enable_comments = models.BooleanField(_('enable comments')) 
    template_name = models.CharField(_('template name'), max_length=70, blank=True, 
     help_text=_("Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'.")) 
    registration_required = models.BooleanField(_('registration required'), help_text=_("If this is checked, only logged-in users will be able to view the page.")) 
    sites = models.ManyToManyField(Site) 
    class Meta: 
     db_table = 'django_flatpage' 
     verbose_name = _('flat page') 
     verbose_name_plural = _('flat pages') 
     ordering = ('url',) 
    def __unicode__(self): 
     return u"%s -- %s" % (self.url, self.title) 
    def get_absolute_url(self): 
     return self.url 

また、あなたは自分のフラットページテンプレートに以下を追加することができます。

<!DOCTYPE html> 
<html> 
<head> 
<title>{{ flatpage.title }}</title> 
</head> 
<body> 
{% if user.is_authenticated %} 
    {{ flatpage.content }} 
{% else %} 
    Please <a href="">log in</a> to view this page. 
{% endif %} 
</body> 
</html> 
関連する問題