Django models 模型逻辑中的django模板
我希望生成与有限(>20,<100)种类型相关联的自动消息:Django models 模型逻辑中的django模板,django-models,django-templates,Django Models,Django Templates,我希望生成与有限(>20,
class Message(models.Model):
MSG_CHOICES = (
('MEETING', 'Meeting Reminder'),
('STATUS', 'Status Change Reminder'),
...
)
message = models.CharField(max_length=100)
msg_type = models.CharField(max_length=10, choices=MSG_CHOICES)
每个消息的实际消息将取决于我必须在某个时候提供给它的类型和参数。例如,“会议”信息基本上是:
"Hi, you have a meeting at %s with %s." % (time, person_to_meet)
而“状态”消息类似于
"Hi, this is a reminder that you changed your %s status to %s." % (status_type, new_status)
现在,这里的复杂性在于我们必须为不同的类型呈现不同的消息。以下是我尝试头脑风暴的一些不同方法:
-Yan嗯,你根本不应该在数据库中存储消息。您正在存储msg_类型。这应该足够了。您(通过模板)向用户显示信息的逻辑应该能够处理这个问题。如果将来需要基于Accept Language标头对消息进行本地化,这将允许您对消息进行本地化。根据我的经验,在数据库中存储用户消息是个坏主意。而且,至少在我看来,这不是真正的商业逻辑。它似乎属于UI层。好啊只是我的意见。这个问题很老了。我很想知道你最终在这里做了什么 IMHO,您根本不应该将消息存储在数据库中。您正在存储msg_类型。这应该足够了。您(通过模板)向用户显示信息的逻辑应该能够处理这个问题。如果将来需要基于Accept Language标头对消息进行本地化,这将允许您对消息进行本地化。根据我的经验,在数据库中存储用户消息是个坏主意。而且,至少在我看来,这不是真正的商业逻辑。它似乎属于UI层。好啊只是我的意见。这个问题很老了。我很想知道你最终在这里做了什么 查看您的邮件示例似乎可以使用post_save方法来提高它。你怎么认为?。我的应用程序也会引发消息,而且我不知道在查看或保存后在哪里引发消息是最好的。我关注你的问题。如果问题只是在查看时执行或在保存后执行,我觉得保存后操作严格地优于视图,因为人类可读消息与用于生成消息的数据之间的关联是模型级逻辑,不应依赖于视图。你觉得怎么样?我在等一个人回答你的问题。在我看来:这是我第一次在post_save中编写这个规则,但很难检查消息应该提出的条件,然后我转到视图。现在我要回到post_save。我总是喜欢在模型上编写代码和业务规则。查看您的消息示例,post_save方法可能是一个很好的方法。你怎么认为?。我的应用程序也会引发消息,而且我不知道在查看或保存后在哪里引发消息是最好的。我关注你的问题。如果问题只是在查看时执行或在保存后执行,我觉得保存后操作严格地优于视图,因为人类可读消息与用于生成消息的数据之间的关联是模型级逻辑,不应依赖于视图。你觉得怎么样?我在等一个人回答你的问题。在我看来:这是我第一次在post_save中编写这个规则,但很难检查消息应该提出的条件,然后我转到视图。现在我要回到post_save。我总是在模型上编写代码和业务规则。