0
我有一个模型可以说客户。我想给该客户添加一个字段让我们说next_meeting。它将是一个日期时间字段,并且将具有与客户下次会议的日期。我也有一个会议模型,它有一个类型为datetimeField的日期字段。所以他们看起来像那样。由另一个模型upadated模型的字段django
class Customer(models.Model):
....fields....
next_meeting = models.DateTimeField(blank=True, null=True)
class Meeting(models.Model):
....fields....
date = models.DateTimeField(auto_now_add = True)
customer = models.ForeignKey(Customer, related_name='meetings')
我想customer.next_meeting领域包含最新的所有的下届会议的日期。所以我想这样做后保存信号,将采取会议的日期和
1. Check if customer.next_meeting is null (first meeting). If null set next_meeting to meeting.date
2. If not null check if meeting.date < customer.next_meeting. If true update customer.next_meeting
同时必须为后删除信号来完成(如果会议被删除)。
1. get the most recent meeting after current date for customer using order_by('date')[0]
2. If meeting: update the next_meeting field, else(no meetings) leave blank.
是您这样做正确的方式。这听起来有点太“昂贵”,如果你为客户数据库方面的许多会议昂贵。还是我误会了?
非常感谢。所以它不需要存储在数据库中。但是,如果用户比会议更新更频繁地检查客户页面会怎么样。这不是查询(你写的会议)比存储在数据库中更昂贵吗? – Apostolos
你应该设计你的数据库进行规范化处理,然后有选择性地使用或者缓存它(或者说“如果”!)你遇到了真实的性能问题。当那一天到来时,有多个缓存/非规范化的第三方包,如缓存机,johny缓存和django-denorm。 –
注释不会添加字段权限?只要查询存在,只创建一个?类似的东西? – Apostolos