我的用户是可以采取行动的雇主,例如向候选人发送消息,与其他人分享他们的简历以及撰写关于候选人的评论。
为此,我创建了3个单独的模型,每个模型一个:
class Share(models.Model):
user = models.ForeignKey(BatitoUser, related_name="shares")
shared_user = models.ForeignKey(BatitoUser, blank=True)
to_email = models.EmailField()
message = models.TextField(blank=True)
date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return '%s - %s' % (self.user, self.to_email)
class Review(models.Model):
user = models.ForeignKey(BatitoUser)
to_user = models.ForeignKey(BatitoUser, related_name='reviews')
review = models.TextField(blank=True)
rating = models.DecimalField(max_digits=2, decimal_places=1, blank=True)
date = models.DateField(auto_now=True)
def __unicode__(self):
return '%s - %s' % (self.user, self.to_user)**
class MessageSent(models.Model):
user = models.ForeignKey(BatitoUser, related_name="messages")
to_user = models.ForeignKey(BatitoUser)
message = models.TextField()
date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return '%s - %s' % (self.user, self.to_user)
我希望能够列出所有雇主的历史记录。 这样做的最佳方式是什么?
我在考虑两个选项:
从每个模型中检索相关信息到模板中(user.reviews_set.all,user.share_set.all等等)然后通过jquery / javascript按日期对它们进行排序。
< / LI>创建另一个包含所有用户操作的历史记录模型。但我不确定该怎么做......
我将不胜感激。
答案 0 :(得分:0)
只是一个快速而肮脏的想法:所有模型都有很多共同之处。您可以通过models.Message.objects.all()
对基本模型(Message)进行子类化并检索简单的历史记录(即没有来自共享和评论的分离消息)。class Message(models.Model):
user = models.ForeignKey(BatitoUser)
to_user = models.ForeignKey(BatitoUser, blank=True)
message = models.TextField(blank=True)
date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return '%s - %s' % (self.user, self.to_user)
class Share(Action):
to_email = models.EmailField()
def __unicode__(self):
return '%s - %s' % (self.user, self.to_email)
class Review(models.Model):
rating = models.DecimalField(max_digits=2, decimal_places=1, blank=True)
还有一个问题是,是否有相同的快速和脏的方式来按历史记录类型分隔邮件
答案 1 :(得分:0)
你可以从django的管理日志from django.contrib.admin.models import LogEntry
中获得灵感,或者如果它符合你的要求就可以使用它。
Checkout this