###前提・実現したいこと
フォームに文字を記入した時に文字が表示されるようにしたいです。
###発生している問題・エラーメッセージ
URLの部分に文字を記入しましたが下部に赤い点しか表示されません。。。
###該当のソースコード
【index.html】
{% extends "guestboard/base.html" %} {% block title %}Guest Board{% endblock %} {% block body %} <div class="page-header"> <h1>Guest Board</h1> </div> {# 画面上段 - 入力フォームを定義する #} <form action="{% url 'guestboard:index' %}" method="post"> <div class="row"> {% for field in form %} <div class="form-group"> {% if field.errors %} <div class="col-sm-10"> <span class="col-sm-10">{{ field.errors }}</span> </div> {% endif %} <div class="col-sm-10"> <label class="col-sm-3 control-label">{{ field.label_tag }}</label> <label class="label col-sm-7">{{ field }}</label> </div> </div> {% endfor %} <div class="col-sm-10"> <div class="form-group"> <label class="col-sm-2 control-label"><input type="submit" class="btn btn-primary" value="登録"></label> {% csrf_token %} </div> </div> </div> </form> <hr> {# 画面下段 - 投稿内容とページネーター用のパーツを表示する #} {% include "guestboard/pagination.html" %}{# ページネーター用のパーツ #} <div class="container"> <div class="row"> <div class="col-sm-8"> {% for posting in page %} <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">{{ posting.name }} <label class="small">投稿日時:{{ posting.created_at }}</label></h3> </div> <div class="panel-body"> URL:{{ posting.message }}<br> 記事ID:{{ posting.post_id }}<br> 選挙日:{{ posting.date }}<br> </div> </div> {% endfor %} </div> </div> </div> {% include "guestboard/pagination.html" %}{# ページネーター用のパーツ #} {% endblock %}
【view.py】
messageフレームワークがundefined variableというエラーがエディタで表示されるのですが
一応動きます。。
from django.core.paginator import ( Paginator, # ページネーター本体のクラス EmptyPage, # ページ番号が範囲外だった場合に発生する例外クラス PageNotAnInteger # ページ番号が数字でなかった場合に発生する例外クラス ) from django.shortcuts import ( render, redirect, ) from .models import Posting from .forms import PostingForm def _get_page(list_, page_no, count=5): """ページネーターを使い、表示するページ情報を取得する""" paginator = Paginator(list_, count) try: page = paginator.page(page_no) except (EmptyPage, PageNotAnInteger): # page_noが指定されていない場合、数値で無い場合、範囲外の場合は # 先頭のページを表示する page = paginator.page(1) return page def index(request): """表示・投稿を処理する""" # ModelFormもFormもインスタンスを作るタイミングでの使い方は同じ form = PostingForm(request.POST or None) if request.method == 'POST': if form.is_valid(): # save()メソッドを呼ぶだけでModelを使ってDBに登録される。 form.save() # メッセージフレームワークを使い、処理が成功したことをユーザーに通知する messages.success(request, '投稿を受付ました。') return redirect('guestboard:index') else: # メッセージフレームワークを使い、処理が失敗したことをユーザーに通知する messages.error(request, '入力内容に誤りがあります。') page = _get_page( Posting.objects.order_by('-id'), # 投稿を新しい順に並び替えて取得する request.GET.get('page') # GETクエリからページ番号を取得する ) contexts = { 'form': form, 'page': page, } return render(request, 'guestboard/index.html', contexts)
【forms.py】
from django import forms from .models import Posting class PostingForm(forms.ModelForm): class Meta: model = Posting fields = ('name', 'message', 'post_id', 'date') widgets = { 'name': forms.TextInput(attrs={'size': 40}), 'message': forms.Textarea(attrs={'cols': 80, 'rows': 20}), 'post_id': forms.TextInput(attrs={'cols': 80, 'rows': 20}), 'date': forms.DateInput(attrs={'cols': 80, 'rows': 20}) }
ご経験ある方、アドバイスお願いします。
###補足情報(言語/FW/ツール等のバージョンなど)
Django '1.10.6'
python '3.4.3'
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/09 15:02
2017/03/10 14:34