演習課題「新規投稿フォームを作成する」
右の環境には、「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