59377


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

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

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

[code]

    {% 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 %}
    
[/code]


CC BY-SA 4.0
2019-09-30T12:41:25.893
59366
2019-10-01T01:48:59.173
36021
question
python django
投稿画面でformにログインユーザを既定したい


「既定したい」という日本語はあまり聞いたことがありませんが、ログインユーザーを投稿者に設定したいということですかね？

[公式ドキュメント](https://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-
data-in-templates)を見ると、`{{ user.username }}`で取得できそうですが、どうでしょう？


CC BY-SA 4.0
2019-10-01T00:51:14.120
59372
2019-10-01T00:51:14.120
21092
59366
answer


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

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

[code]

    <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>
    
[/code]


CC BY-SA 4.0
2019-10-01T01:39:11.833
59377
2019-10-01T01:48:59.173
2019-10-01T01:48:59.173
35698
35698
59366
answer