django - Django:模型函数没有在模板中返回正确的值
问题描述
有 bookingrecordsView
我获取用户所做的所有预订的视图。我添加了一个模型函数 is_pending()
,它获取一个预订实例,检查该 date_to
字段是否已通过,并返回一个字符串。获取保留的视图:
def bookingrecordsView(request):
rsv = Reservation.objects.filter(user=request.user)
return render(request, 'booking_history_page.html', {'rsv': rsv})
以及检查日期的功能:
class Reservation (models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
date_from = models.DateField(auto_now=False, auto_now_add=False, blank=False)
date_to = models.DateField(auto_now=False, auto_now_add=False, blank=False)
time_from = models.TimeField(auto_now=False, auto_now_add=False, blank=False)
time_to = models.TimeField(auto_now=False, auto_now_add=False, blank=False)
destination=models.CharField(max_length=20, blank=False, verbose_name="Where will you go")
chosen_vehicle=models.CharField(max_length = 20, blank=False, default='')
booking_time=models.DateTimeField(default = datetime.now)
garage = models.CharField(max_length = 20)
city = models.CharField(max_length = 20, default='')
area = models.CharField(max_length = 20, default='')
@property
Def is_pending(self):
if self.date_to < datetime.date.today():
return "Pending"
else:
return "Over"`
这是我的模板片段:
{% for r in rsv %}
<tr>
<td>{{ r.id }}</td>
<td>{{ r.date_from }} - {{ r.date_to }}</td>
<td>{{ r.time_from }} - {{ r.time_to }}</td>
<td>{{ r.chosen_vehicle }}</td>
<td>{{ r.garage }}</td>
<td>{{ r.destination }}</td>
<td>{{ r.is_pending }}</td>
</tr>
{% endfor %}`
现在,对于所有预订,即使是几个月前通过的预订,此状态始终返回“待处理”。
如何 Reservation
从函数中获取每个实例 的正确返回值is_pending()
并将其相应地传递给模板?
解决方案
推荐阅读
- deployment - 部署 mina rails 时,Puma 未在定义的位置创建套接字“pumactl.sock”
- c# - c#:有没有办法从数据开始的地方检索excel中的单元格地址?
- spring-tool-suite - Spring Tool Suite 内容辅助的奇怪行为
- java - 无法确定数组中的索引
- php - 循环中的PHP POST选择框未按正确顺序显示值
- ruby-on-rails - Special character in LIKE in PostgreSQL
- django - 无法使用 oracle ebs 数据库连接到 Django
- thorntail - 使用 Thorntail 映射 JMS JNDI 条目
- powershell - Is it possible to read out two groups in one command?
- linux-kernel - When does the cpu actually come online?