django - 是否可以让 TextFields 的默认值引用 txt 文件?
问题描述
我正在构建一个允许用户在 Django 中发送模板化电子邮件的基本系统。我的电子邮件模型中有一个提供电子邮件内容的字段:
class Email(models.Model):
message = models.TextField(_("Message"), blank=True)
我想指定默认内容,但是消息本身可能很长。有没有办法让默认值引用文本文件(或任何文件),而不是在模型本身中有这个?
例如
class Email(models.Model):
message = models.TextField(_("Message"), blank=True, default='mytextfile.txt')
比
class Email(models.Model):
message = models.TextField(_("Message"), blank=True, default='"Sed ut perspiciatis unde omnis
iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa
ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim
voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores
qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia ...')
解决方案
我建议使用 Django Forms 并覆盖该__init__
方法以从任何外部文件设置默认值。例如:
class EmailForm(forms.Form):
def __init__(self, *args, **kwargs):
super(EmailForm, self).__init__(*args, **kwargs)
data_from_txt_file =self.get_default_email_message() #Define a method to read data from txt file and return as string
self.fields['message'].initial = data_from_txt_file
推荐阅读
- java - 为什么在 GC 中,来自 Views 的引用被清除,而当包含的 Activity 被销毁时,来自嵌套内部类的引用仍然存在?
- docker - 是否可以在虚拟机上启动 docker?
- java - 尝试打开范围报告 html 文件时出现 404 错误
- api - 如何下载 API 的内容
- reactjs - 在redux的自定义中间件中调度异步函数
- python - 计算 pandas 组中的 NaN 值
- java - 为什么 BigInteger 将“80”(十六进制)解析为两个字节?
- html - 使用 datalist 输入数字不会触发更改事件
- amazon-web-services - AWS Glue/Spark 上的交叉联接优化
- reactjs - 仅在重定向时才在组件中获取用户身份验证状态