Djangoチュートリアルを見ながら投票サイトを作りました。
https://docs.djangoproject.com/ja/2.1/intro/tutorial01/
html部分に若干の変更を加えGithubに掲載しました。
https://docs.djangoproject.com/ja/2.1/intro/tutorial01/
ここに変更を加え、質問を掲載した2日後に質問を締め切ってその後は投票結果だけが見られるようにするといった締め切り機能を設けたいと思っています。
おそらく管理画面に機能を追加するのでmodels.pyとadmin.pyに変更を加え、timezoneの機能などを使って作ればいいのかな?
というくらいのことはわかるのですが、コードの書き方はさっぱりわかりません。
検索もしてみましたがそのような方法は見つかりませんでした。
このサイトに載ってるよとかこの書籍に載ってるよといった情報程度でも良いので教えていただけば幸いです。
models.py
import datetime from django.db import models from django.utils import timezone class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') def was_published_recently(self): now = timezone.now() return now - datetime.timedelta(days=1) <= self.pub_date <= now was_published_recently.admin_order_field = 'pub_date' was_published_recently.boolean = True was_published_recently.short_description = 'Published recently?' class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)
admin.py
from django.contrib import admin from .models import Choice, Question #modelsからインポート #管理サイトのテキストの初期選択数 class ChoiceInline(admin.TabularInline): model = Choice extra = 3 #管理サイトのサーチ機能 class QuestionAdmin(admin.ModelAdmin): list_filter = ['pub_date'] search_fields = ['question_text'] list_display = ('question_text', 'pub_date', 'was_published_recently') inlines = [ChoiceInline] admin.site.register(Question, QuestionAdmin)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/26 00:52
2018/11/29 04:52