演習課題「新規投稿フォームを作成する」
右の環境には、「myblog」プロジェクトに「diary」という1行掲示板が作成してあります。
新規投稿フォームに「diaryForm」を追加してください。この時、Bootstrapのフォームデザインを適用してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#08:投稿の保存機能を完成させよう
ここでは、掲示板アプリケーションの新規投稿フォームを作成します。前回のレッスンで、新規投稿を格納するcreate関数を作成してあるので、それと投稿フォームを組み合わせます。
myapp/bbs/templates/bbs/new.html{% extends './base.html' %}
{% load bootstrap4 %}
{% block content %}
<h1>{{ message }}</h1>
<form action='{% url "bbs:create" %}' method='post' class='form'>
{% csrf_token %}
{% bootstrap_form articleForm layout='horizontal' %}
<button type='submit' class='btn btn-outline-primary'>作成する</button>
<a href='{% url "bbs:index" %}' class='btn btn-outline-secondary'>戻る</a>
</form>
{% endblock %}
myapp/bbs/views.pydef create(request):
if request.method == 'POST':
articleForm = ArticleForm(request.POST)
if articleForm.is_valid():
article = articleForm.save()
context = {
'message': 'Create article ' + str(article.id),
'article': article,
}
return render(request, 'bbs/detail.html', context)
myapp/bbs/templates/bbs/index.html<div>
<a href='{% url "bbs:new" %}' class='btn btn-outline-primary'>新規</a>
</div>
- Python Django入門 (4) - Qiita
https://qiita.com/kaki_k/items/6e17597804437ef170ae
- 情報処理推進機構:情報セキュリティ:脆弱性関連情報の取扱い:知っていますか?脆弱性 (ぜいじゃくせい)/3. CSRF (クロスサイト・リクエスト・フォージェリ)
https://www.ipa.go.jp/security/vuln/vuln_contents/csrf.html