基于django的微博如何设计用户model

准备基于django.contrib.auth.models进行扩展,但是对于关注和粉丝这两个field的设计一直拿不准,使用foreignkey的话只能关注一人,使用manytomanyfield的话关注的这个field既可能表示关注又可能表示粉丝完全无法区分,求高手指教该如何建立这个model,谢谢。
临摹微笑
浏览 290回答 2
2回答

月关宝盒

可以建一个关系表Friendship,然后字段field分别是粉丝和关注,并且Foreignkey为UserclassFriendship(models.Model):from_friend=models.ForeignKey(User,related_name='friend_set')to_friend=models.ForeignKey(User,related_name='to_friend_set')可以参考这个:社交网络中关注和粉丝的数据设计算不上高明的方法,对于一般的需求也能解决

UYOU

可以实现社交网络中的关注功能,除此之外也可以采用ActivityStream来实现,ActivityStream使用了Django中的ContentType包,因此使用它可以实现任何对象之间的关注功能(例如:组的关注、资源的关注等),具体使用方式可以看一下上面的文档。@python_2_unicode_compatibleclassFollow(models.Model):"""Letsauserfollowtheactivitiesofanyspecificactor"""user=models.ForeignKey(user_model_label)content_type=models.ForeignKey(ContentType)object_id=models.CharField(max_length=255)follow_object=generic.GenericForeignKey()actor_only=models.BooleanField("Onlyfollowactionswhere""theobjectisthetarget.",default=True)started=models.DateTimeField(default=now)objects=FollowManager()classMeta:unique_together=('user','content_type','object_id')def__str__(self):return'%s->%s'%(self.user,self.follow_object)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript