这是我的用户模型-
class CustomUser(AbstractUser):
user_id = models.UUIDField(default=uuid.uuid4,editable=False,primary_key=True)
username = models.CharField(max_length = 100,unique = True)
friends = models.ManyToManyField('CustomUser',related_name="friend", blank= True)
user_last_seen = models.DateTimeField(auto_now_add=False)
我可以使用以下中间件跟踪用户最后一次出现的时间(无论他们是否注销):
class ActiveUserMiddleware(MiddlewareMixin):
def process_request(self, request):
current_user = request.user
if request.user.is_authenticated:
now = datetime.datetime.now()
current_user.user_last_seen = now
current_user.save(update_fields=['user_last_seen'])
并且还能够在我的模板中显示它们是否在当前时刻处于活动状态,或者它们最后一次出现的时间 -
{%if i.user_last_seen|timesince|upto:',' < "1 minutes" %}
<td style="font-size:small; color:green;text-align:right;">
Active Now
</td>
{%else%}
<td style="font-size:small; color:gray;text-align:right;">
{{i.user_last_seen|timesince|upto:','}} ago
</td>
{%endif%}
除此之外,我想显示当前活跃的用户总数,他们是某个用户的朋友。但我很难理解如何准确地做到这一点。当谈到 Django 时,我仍然是初学者,任何建议或想法都会非常有帮助。