如何将Django表单写入文本文件

问题描述

| 我正在创建一个django网站(使用django表单),该网站允许用户订阅其电子邮件。如何将电子邮件发送到文本文件中?目前,我有一个cron作业,该作业运行python脚本,每天早晨向所有订阅者发送电子邮件。这是执行此操作的最佳方法,还是可以使用Django表单中的某些内置功能?     

解决方法

如果我对您的理解正确,那么您有一个用户列表(来自他们的电子邮件地址)已保存到数据库中,并且想要将该列表保存到文本文件中? 好吧,您可以输入
./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()}
)
template / text.txt:
{% for user in object_list %}
   {{ user.email }}
{% endfor %}