2017-09-25 8 views
0

Djangoでモデルを更新し、これをページに表示する実行中のフォームがありますが、フォーマットを改善したいと考えていました。何が起こるかは、フォームに入力されたすべてのデータがページに表示されます。私がしたいのは、数値的にリストすることです。これは今私がhome.htmlに持っているものです:DjangoフォームをHTMLで書式設定してインクリメントする

{% extends 'base.html' %} 

{% block body %} 

<div class="container"> 
    <h1>Home</h1> 
    <form method="post"> 
     {% csrf_token %} 
     {{ form.as_p }} 
     <button type="submit">Submit</button> 
    </form> 
    {% for post in posts %} 
     <h2>Object:{{ post.post }}</h2> 
    {% endfor %} 
</div> 

{% endblock %} 

私はデータ "a"、 "b"、 "c"を持っています。

オブジェクト::

オブジェクトB:D

:私はフォームにDを追加した場合は

C、それは

オブジェクトを追加するには

Objectとして自分自身を表示していました

私はこれにインクリメントを追加して、それ自体を表示するようにしたいと考えています。

オブジェクト1:

オブジェクト2:

オブジェクト3 B:

Cと

オブジェクト4とDを追加します。私はこれを実装するに行くかどう

?私が知りたいもう一つのことは、フォームの横にある「投稿」のコメントを変更できるかどうかです。今私のフォームは、左側に "投稿:"と表示されます。これを編集する方法はありますか?

編集:ここに私のview.pyファイルですが:私は何をしたいです

from django.shortcuts import render, redirect 
from firstapp.forms import IndexForm 
from django.views.generic import TemplateView 
from firstapp.models import Post 

class HomePage(TemplateView): 
    template_name = 'home/home.html' 

    def get(self, request): 
     form = IndexForm() 
     posts = Post.objects.all() 
     args = {'form': form, 'posts': posts} 
     return render(request, self.template_name, args) 

    def post(self, request): 
     form = IndexForm(request.POST) 
     if form.is_valid(): 
      post = form.save(commit=False) 
      post.user = request.user 
      post.save() 
      text = form.cleaned_data['post'] 
      form = IndexForm() 
      return redirect('home:home') 

     args = {'form': form, 'text': text} 
     return render(request, self.template_name, args) 
+0

ビューのコードを表示できますか? –

+0

ビューを追加しました。 – Zevvysan

答えて

1

数値的にそれが

https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#for

あなたは「forloop探しているリストします.counter ":

{% for post in posts %} 
    <h2>Object {{ forloop.counter }}: {{ post.post }}</h2> 
{% endfor %} 

今、私のフォームは、左側に "投稿:"と表示されます。これを編集する方法はありますか?

あなたのモデルは「投稿」と呼ばれているようです。使用することにより

from firstapp.models import Post 

{{ form.as_p }} 

Djangoはフォームフィールドとラベルのデフォルトセットをレンダリングします。 IndexFormクラスを変更することで、フォームフィールドの表示方法を変更することも、home.html内のフォーム全体を手動でレンダリングすることもできます。

https://docs.djangoproject.com/en/1.11/topics/forms/#form-rendering-options

関連する問題