【发布时间】:2015-10-14 08:34:33
【问题描述】:
我正在使用 Django 1.8.3 和 Python 3.4.3
我会尽力解释这一点,所以它是有道理的,所以请多多包涵。我已将一个 csv 文件导入我的数据库,其中包含大约 50 行和 10 列数据,其中包括从 Google Analytics 提取的数据和我们的电子邮件营销活动数据。其中一列是“day_of_week”。我需要计算具有我需要的当天关键字的数据库行数......我能弄清楚如何做到这一点的唯一方法是使用下面的代码,但是伙计,它似乎可以更加动态和清洁。
有没有办法以我可以在模板中使用标签的方式过滤它,或者比这更干净的东西?感谢您的帮助。
class EmailListView(ListView):
model = Email
template_name = 'dashboard/pages/email.html'
def get_context_data(self, **kwargs):
context = super(EmailListView, self).get_context_data(**kwargs)
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October',
'November', 'December']
subject_type = ['Offer', 'Sell', 'Fear', 'Learn']
content_type = ['Offer', 'Sell', 'Fear', 'Learn']
email_list = ['FMG - Business', 'FMG - Residential', 'AE', 'IBA']
total_campaigns_monday = {}
total_campaigns_tuesday = {},
total_campaigns_wednesday = {},
total_campaigns_thursday = {},
total_campaigns_friday = {},
total_campaigns_saturday = {},
total_campaigns_sunday = {},
total_recipients = {}
total_unsubscribes = {}
total_bounces = {}
total_open = {}
total_clicks = {}
for campaigns in days:
total_campaigns_monday = Email.objects.filter(day_of_week='Monday').count()
total_campaigns_monday = Email.objects.filter(day_of_week='Tuesday').count()
total_campaigns_monday = Email.objects.filter(day_of_week='Wednesday').count()
total_campaigns_monday = Email.objects.filter(day_of_week='Thursday').count()
total_campaigns_monday = Email.objects.filter(day_of_week='Friday').count()
total_campaigns_monday = Email.objects.filter(day_of_week='Saturday').count()
total_campaigns_monday = Email.objects.filter(day_of_week='Sunday').count()
还有我的模板的 sn-p(注意第一个与其他模板不同。)
{% if email_list %}
<tr>
<td>Monday</td>
<td>{{ total_campaigns_monday }}</td>
<td>{{ total_recipients.Monday }}</td>
<td>{{ total_unsubscribes.Monday }}</td>
<td>{{ total_bounces.Monday }}</td>
<td>{{ total_open.Monday }}</td>
<td>{{ total_clicks.Monday }}</td>
<td>{% average total_open.Monday total_recipients.Monday %}</td>
<td>{% average total_clicks.Monday total_open.Monday %}</td>
</tr>
{% endif %}
【问题讨论】:
标签: django python-3.x django-models django-templates django-views