2011-05-19 74 views
0

我在创建一个允许用户订阅电子邮件的django网站(使用django表单)。如何将该电子邮件转换为文本文件?目前我有一个cron作业,它运行一个python脚本,每天早上向所有用户发送一封电子邮件。这是做这件事的最好方法,还是我可以使用django-forms中的某些内置功能?如何将django表单写入文本文件

回答

1

如果我的理解正确,您的电子邮件地址中的用户列表保存在数据库中,并且希望将该列表保存到文本文件中?

那么你可以进入./manage.py shell和类型是这样的:

# I assumed the email addresses are in User.email; modify as needed to conform to your model. 

with open('email.txt','w') as f: 
    for u in User.objects.all(): 
     f.write(u.email + '\n') 

你也可以写一个管理命令做到这一点: http://docs.djangoproject.com/en/dev/howto/custom-management-commands/

或创建一个用于创建一个简单的视图&模板包含列表中所有电子邮件地址的文本文件。尽管为了您的用户不被垃圾邮件密码保护,并且不要将其公开访问。一些简单的像(不是私人)应该工作:

urls.py:

from django.views.generic.list_detail import object_list 
urlpatterns = patterns('', 
         (r'^full_emails/$', 'object_list', {'template': 'template/text.txt', 'queryset'=User.objects.all()} 
) 

模板/的text.txt:

{% for user in object_list %} 
    {{ user.email }} 
{% endfor %}