ユーザデータ(日付、名前、住所、連絡先の番号)を表形式で表示するテンプレートがあります。このテンプレートにユーザー日付を取り入れて、特定の日付のエントリを表示するようにテーブルを変更するフィルタボタンを適用するにはどうすればよいですか。私のテーブルの内容を日付に合わせてdjangoテンプレートに表示するには
Table.html
{% block content %}
<h1 style="font-size:300%;">ATTENDANCE TABLE</h1><hr /><br />
<table>
<tr>
<th>DATE</th>
<th>NAME</th>
<th>SITE</th>
<th>TYPE OF LEAVE</th>
<th>REASON</th>
<th>ARRIVAL</th>
<th>TIME IN</th>
<th>TIME OUT</th>
</tr>
{% for topic in topics %}
<tr>
<td>{{ topic.date }}</td>
<td>{{ topic.name }}</td>
<td>{{ topic.site }}</td>
<td>{{ topic.leave_type }}</td>
<td>{{ topic.reason }}</td>
<td>{{ topic.arrival }}</td>
<td>{{ topic.intime }}</td>
<td>{{ topic.outtime }}</td>
</tr>
{% endfor %}
この表が表示されたら、私は日付を受け入れ、その入力された日付のエントリを表示するには、テーブルを変更し、フィルタボタンを持っていると思います。新しいビューを作成するか、.htmlファイルで再生する必要がありますか?
私は{{variable | date}}フィルタを使用して無駄にしました。
EDIT: 他のファイルを共有して、フォームテンプレートフィルタアプローチを実装します。
<body>
<table>
<tr>
<th>DATE</th>
<th>NAME</th>
<th>SITE</th>
<th>TYPE OF LEAVE</th>
<th>REASON</th>
<th>ARRIVAL</th>
<th>TIME IN</th>
<th>TIME OUT</th>
<th>COMMENT</th>
</tr>
{% for post in posts %}
<tr>
<td>{{ post.date }}</td>
<td>{{ post.name }}</td>
<td>{{ post.site }}</td>
<td>{{ post.leave_type }}</td>
<td>{{ post.reason }}</td>
<td>{{ post.arrival }}</td>
<td>{{ post.intime }}</td>
<td>{{ post.outtime }}</td>
<td>{{ post.comment }}</td>
</tr>
{% endfor %}
</table>
</body>
forms.py
from django import forms
from django.forms.fields import DateField, TimeField, DateInput, TimeInput,
datetime
from django.contrib.auth.forms import AuthenticationForm
from django.utils.translation import ugettext_lazy as _
from django.forms.extras.widgets import SelectDateWidget
from .lala import SelectTimeWidget
import datetime
from .models import Topic, AppStaff
class TopicForm(forms.ModelForm):
date= forms.DateField(widget=SelectDateWidget, initial=datetime.date.today)
name=forms.ModelChoiceField(queryset=AppStaff.objects.values_list('agent',flat=True))
intime=forms.TimeField(widget= SelectTimeWidget(twelve_hr=True, required=False,use_seconds=False),required=False)
outtime=forms.TimeField(widget= SelectTimeWidget(twelve_hr=True, required=False,use_seconds=False),required=False)
class Meta:
model = Topic
#fields = ['site','leave_type','reason','arrival','intime','outtime']
class FilterForm(forms.Form):
date1= forms.DateField(widget=SelectDateWidget, initial=datetime.date.today)
Views.py
from django.utils import timezone
from django.shortcuts import render
from django.http import HttpRequest
from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.shortcuts import render_to_response
from .models import Topic, AppStaff
from .forms import TopicForm, FilterForm
import datetime
def topics(request):
"""Show all topics."""
topics = Topic.objects.all()
context = {'topics': topics}
return render(request, 'app/topics.html', context)
def new_topic(request):
"""Add a new topic."""
if request.method != 'POST':
# No data submitted; create a blank form.
form = TopicForm()
else:
# POST data submitted; process data.
form = TopicForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('new_topic'))
context = {'form': form}
return render(request, 'app/new_topic.html', context)
def filter(request):
form = FilterForm()
if request.method == "POST":
f = FilterForm(request.POST)
if f.is_valid():
posts = Topic.objects.filter()
return HttpResponseRedirect("app/filter.html",{"posts":posts})
else:
return render_to_response("app/filter.html",{"form":form} , context_instance = RequestContext(request))
filter.htmlは私のFilterFormは、日付フィールドを示しますが、私は提出打ったとき、それはフィルタを開く必要があります.htmlとフィルタリングされたリスト私は何かが欠落していると確信していますが、実際には今何週間何があるのか分かりません。