コメントはBear Brownです。
models.py
:
class Post(models.Model):
title = models.CharField(max_length=100, unique=True)
content = models.TextField()
is_draft = models.BooleanField(help_text='If checked article gets not published.', default=False)
pub_date = models.DateField(default=timezone.now)
objects = PublishedManager()
クエリを経由して、例えばDjango
シェル:
class PublishedManager(models.Manager):
def published(self, **kwargs):
return self.filter(pub_date__lte=timezone.now(),
is_draft=False,
**kwargs).order_by('-pub_date')
views.py
:
class PostListView(ListView):
model = Post
def get_queryset(self):
queryset = Post.objects.published()
return queryset
テンプレート:
Post.objects.filter(is_draft=False)
managers.py
追加のフィルタのみを返すようにはより低いか、または現在の日付と等しいpub_date
とオブジェクト
{% for post in post_list %}
<h1>{{ post.title }}</h1>
{{ post.content }}
{% endfor %}
偽[のBooleanField]をデフォルトis_draftブールフィールドを追加します(https://docs.djangoproject.com/en/1.11/ref/models/fields/#booleanfield) 'models.BooleanField(デフォルト= False)が' –