嗨,大家好我想弄清楚这一点,但没有运气。
所以我在主页上显示我的活动,显示有多少座位可用,一旦用户预订我想减去主页上显示的金额。
但我已经停留在预订模式中为该事件添加所有值,减去该数量。
所以这就是我所拥有的
事件模型
class Events(models.Model):
ACTIVE = (('d', "Deactivated"), ('e', "Expired"), ('a', "Active"), ('b', "Drafts"),)
ALCOHOL = (('0','No bring own alcohol'),('1','There will be complimentary wine pairing'))
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=50, blank=True, default='')
date = models.DateField()
time = models.TimeField()
price = models.CharField(max_length=240, blank=True, default='')
seats = models.IntegerField()
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True)
预订模式
class Bookings(models.Model):
OPTIONS_STATUS = (('y', "Yes"), ('n', "No"), ('p', "Pending"),)
user = models.ForeignKey(User, on_delete=models.CASCADE)
event = models.ForeignKey(Events, on_delete=models.CASCADE)
eventdate = models.DateField()
event_amount = models.CharField(max_length=50, blank=True, default='')
guests = models.IntegerField()
bookingstatus = models.CharField(max_length=50, default='p', blank=True, choices=OPTIONS_STATUS)
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True)
我的主页如何将我的数据放入视图中的循环
today = datetime.now().strftime('%Y-%m-%d')
events_list_data = Events.objects.filter(active='a').filter(Q(date__gte=today)|Q(date=today)).order_by('date')
我如何尝试在我的模板中显示此内容
{% for event_list in events_list_data %}
SHOW WHAT EVER DATA I AM SHOWING NOT NEEDED FOR HELP ON
{% for bookingguests in
event_list.bookings_set.all %}
{{ bookingguests.guests }}
{% endfor %}
Seats Left
{% endif %}
答案 0 :(得分:0)
通常,模板的目的不是实现逻辑。所有逻辑都应该进入你的观点。我建议您在视图中执行此操作,并将其存储在字典或列表中并将其发送到前端。
一旦用户进行了预订,如果您想在不重新加载的情况下修改HTML上的值,您可能需要使用jQuery / javascript。否则,如果您通过使用后端计算再次渲染页面来重新加载页面就可以了。
使用jQuery:
$("#balance-id").html(logic to get the balance)
通过在视图中计算:
from django.db.models import Sum
user_balance = user.balance - events_data.aggregate(Sum('price'))
return render('path/to/template', {'events_list': events_list_object, 'user_balance':user_balance})
在模板中:
{{user_balance}} seats left
如有任何问题,请告诉我。
注意:如果要在模板中编写一些逻辑,请使用template tags。它可以通过其有限的功能为您提供帮助。