adminサイトで作成した項目から遷移させるには?
心理テストアプリを作成中です。質問タイトルはadminで作成、質問内容はそれぞれの遷移先を作成し表示したいです。
質問タイトルから質問内容へ遷移できるようadmin内で質問タイトルの中にtemplate_name(default_quiz_template1.html、default_quiz_template2.htmlのような形式)までは構築できました。
現在は質問タイトル一覧が表示されているだけです。
このhtmlを表示させるためのvscode内記述、htmlの記述例等の解決方法を教えていただきたいです。
初めてのアプリ作成でchat GPTや解決方法を模索いたしましたが、解決に至らず質問いたしました。よろしくお願いいたします。
urls.py
from django.urls import path
from django.contrib import admin
from .views import (
QuizListView, QuizDetailView
)
app_name = 'psychology_tests'
urlpatterns = [
path('admin/', admin.site.urls),
path('quiz_list/', QuizListView.as_view(), name='quiz_list'),
path('quiz/int:pk/', QuizDetailView.as_view(), name='quiz-detail'),
]
admin.py
from django.contrib import admin
from.models import(
ProductTypes, Quiz, ProductPictures
)
class QuizAdmin(admin.ModelAdmin):
list_display = ('title', 'template_name')
fields = ('title', 'product_type', 'detail', 'template_name')
class ProductTypesAdmin(admin.ModelAdmin):
# ProductTypes用の管理設定をここに追加
pass
class ProductPicturesAdmin(admin.ModelAdmin):
# ProductPictures用の管理設定をここに追加
pass
admin.site.register(Quiz, QuizAdmin)
admin.site.register(ProductTypes, ProductTypesAdmin)
admin.site.register(ProductPictures, ProductPicturesAdmin)
views.py
class QuizDetailView(LoginRequiredMixin, DetailView):
model = Quiz
template_name = 'admin/psychology_tests/default_quiz_template.html'
def get_template_names(self):
"""
オブジェクトに設定されたテンプレート名を使用してテンプレートを選択
デフォルト以外のテンプレートが指定されている場合のみカスタムテンプレートを使用
"""
if self.object.template_name != 'default_quiz_template.html':
return [self.object.template_name]
else:
return ['default_quiz_template.html']
models.py
class Quiz(models.Model):
title = models.CharField(max_length=1000)
product_type = models.ForeignKey(
ProductTypes, on_delete=models.CASCADE
)
# title = models.CharField(max_length=200)
detail = models.TextField()
template_name = models.CharField(max_length=100, default='default_quiz_template.html') # デフォルトテンプレート名
class Meta:
db_table = 'quiz'
def __str__(self):
return self.title
default_quiz_template1.html(このような遷移先を表示したいと考えているサンプルです)
{% extends 'base.html' %}
{% block content %}
散歩中に見つけたものは?
1.石
1.石を選んだあなたは・・・
{% endblock %}