環境
・Python3.7
・Django3.0
・MacOS
Djangoは初学者で、勉強しながらWebアプリ開発をしています。
旅行サイトの検索条件を打ち込むようなページを作っているのですが、modelsを作成し、テンプレートに反映させようとしたところ、下の画像のように上手くテンプレートにmodelを引っ張ってこれません。【画像1】
理想はmodelで作成したものをテンプレートで表示させることです。
なにぶん初学者ゆえ、試行錯誤しながら修正してますが改善ならず。。
間違っている箇所があればご指摘いただけると幸いです。
どなたかご教授よろしくお願いいたしますm(_ _)m
プロジェクト名 traveler
アプリ名 travels
makemigrations travels
migrate は実行済みです。
以下、全コードです。
#traveler/setting.py #(追加・変更部分のみ記載) INSTALLED_APPS = [ 'travels.apps.TravelsConfig', #追加 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] LANGUAGE_CODE = 'ja' #変更 TIME_ZONE = 'Asia/Tokyo' #変更
#traveler/urls.py from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('travels/', include('travels.urls')), ]
#traveler/travels/urls.py from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('condition/', views.condition), ]
#traveler/travels/models.py #classのコメントアウトを外すとエラー #no such column: travels_condition.ageが発生します【画像2】 from django.db import models from django.utils import timezone class Condition(models.Model): name = models.CharField('名前', max_length=255) #age = models.IntegerField('年齢') #gender = models.CharField('性別', max_length=255) #created_at = models.DateTimeField('URL送信日', default=timezone.now) def __str__(self): return self.name
#traveler/travels/views.py from django.shortcuts import render from .models import Condition def condition(request): context = { 'condition': Condition.objects.all(), } return render(request,'travels/condition.html', context)
#traveler/travels/templates/travels/condition.html <!DOCTYPE html> <html lang='ja'> <head>条件ページ</head> <body> {% for con in condition %} {{ con.name }} {% endfor %} </body> </html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/06 13:19
2020/05/06 22:41
退会済みユーザー
2020/05/07 02:26
2020/05/07 02:29
退会済みユーザー
2020/05/07 06:03