質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1694閲覧

fieldに文字が表示されません。

s.k

総合スコア423

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/03/09 05:29

###前提・実現したいこと
フォームに文字を記入した時に文字が表示されるようにしたいです。

###発生している問題・エラーメッセージ

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'

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

views.pyの先頭に、以下コードを追加してみてください。

python

1from django.contrib import messages

投稿2017/03/09 14:53

toritoritorina

総合スコア972

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s.k

2017/03/09 15:02

ありがとうございます!messageのエラーは解決できました!!
toritoritorina

2017/03/10 14:34

何点か確認です。 ・投稿自体はできるのでしょうか。 ・ブラウザは何を使用されていますか。 また、forms.pyのwidgetsの部分を消すと動作はどうなるか試していただいてよろしいですか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問