投稿画面でformにログインユーザを既定したい

投稿者: Anonymous

Djangoでブログ投稿アプリの制作をしています。
ログインユーザのアカウントに準じて投稿者を既定したいです。

その中でどのように定義してよいのか判らず困っております。
思い浮かぶ案
・HTMLでログインユーザを取得して、setするのか
・viewやformで定義すべきなのか

以下はHTML定義で、備考程度に査閲をお願いいたします

{% extends "base.html" %}

{% block title %}Blog Create{% endblock %}
{% block content %}

<h2>ブログを投稿する</h2>
<form method="POST" class="post-form">{% csrf_token %}
    <div class="form-group col-md-11">
        <label for="id_title">タイトル</label>
        {{ form.title }}
    </div>
    <div class="form-group col-md-11">
        <label for="id_text">本文</label>
        {{ form.text }}
    </div>
    <div class="form-group col-md-11">
        <label for="id_category">カテゴリ</label>
        {{ form.category }}
    </div>
{# <div class="form-group col-md-11">#}
{#      <label for="id_author">著者</label>#}
{#      {{ form.author}}#}
{# </div>#}
    <button type="submit" class="save btn btn-default">投稿</button>
</form>

{% endblock %}

解決

htmlテンプレートにて{{ request.user.username }} は投稿者のアカウントです。
ユーザーのほかのattributeの値を参照したい場合、{{ request.user.attribute }}となります。

投稿formのauthorをログインしているユーザーのアカウントにしますかね。

<div class="form-group col-md-11">
<label for="id_author">著者</label>
 <input type="text" name="{{ form.author.name }}" id="{{ form.author.id_for_label }}" value="{{  request.user.username }}" >
</div>
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *