【发布时间】:2018-07-18 08:00:09
【问题描述】:
我正在创建一个时间表应用程序。我想每周显示时间表,我可以做到。 我已经创建了上一周和下一周的按钮。
我应该使用什么方法,这样当有人点击前一周时,它会显示前一周的时间表,下周也一样。
注意 - 我有一个时间表,其中每天包含一个时间条目。
models.py --
class TimeRecords(models.Model):
emp_id = models.IntegerField(verbose_name = 'Employee ID')
ts_date = models.DateField(null=False, blank=False,verbose_name = 'Time Sheet Date')
ts_effort = models.PositiveIntegerField(default=8,verbose_name = 'Hours worked')
ts_desc = models.CharField(max_length=200,verbose_name = 'Time Description')
class Meta:
verbose_name = 'Time Records'
verbose_name_plural = 'Time Records'
unique_together = (("emp_id", "ts_date"),)
ordering = ["-emp_id"]
def __str__(self):
return self.ts_desc
forms.py ---
class CreateTimeSheetForm(forms.ModelForm):
emp_id = forms.IntegerField(widget=forms.HiddenInput(), initial=123)
class Meta:
model = TimeRecords
fields = '__all__'
labels = {
"ts_desc": "Task Description"
}
widgets = {
'ts_date': forms.TextInput(attrs={'readonly': True}),
}
views.py ---
def dateEnds():
date=datetime.date.today()
year, week, dow = date.isocalendar()
if dow == 1:
start_date = date
else:
start_date = date - timedelta(dow)
end_date = start_date + datetime.timedelta(days=7)
return start_date ,end_date
def daterange():
start_date, end_date=dateEnds()
for n in range(int((end_date - start_date).days)):
yield start_date + timedelta(n)
def timeEntryList(request):
start_date, end_date=dateEnds()
time_records=TimeRecords.objects.filter(emp_id=emp_id,ts_date__range=
(start_date, end_date))
context = {'time_records': time_records}
return render(request, 'timesheets/list.html', context)
list.html --
<tr> <th > Date</th> <th> Efforts</th> <th> Description</th> <th> Action</th> </tr>
{% for time_record in time_records %}
<tr>
<td >{{ time_record.ts_date|date:"SHORT_DATE_FORMAT" }}</td>
<td>{{ time_record.ts_effort }}</td>
<td>{{ time_record.ts_desc }}</td>
<td ><a href="../{{time_record.id}}/edit">Edit</a> <a href="../{{time_record.id}}/delete/">Delete</a></td>
</tr>
{% endfor %}
</table>
<a href="/timesheets/view" ><button type="button" class="btn" >Previous Week</button></a>
【问题讨论】:
-
您的
dateEnds()函数仅用于使用today?你在哪里可以输入你的start_date?
标签: django django-forms django-views