django实现关注与被关注

关注与被关注是现在很多网站的必需实现的功能,使用关系表也很容易表达,
下面是一一个简单的例子,

定义user表并写出设置关注与察看关注者的函数

class User(models.Model):
    username = models.CharField(max_length=30)
   
    def get_follower(self):
        '''
        folloer  关注的人
        :return:
        '''
        user_list = []
        for followed_user in self.user.followed.all():
            user_list.append(followed_user.follower)
        return user_list

    def get_followed(self):
        '''
        followed 关注我的人
        :return:
        '''
        user_list = []
        for follower_user in self.user.follower.all():
            user_list.append(follower_user.followed)
        return user_list

    def set_follower(self,id):
        '''
        follow some user use id
        :param id:
        :return:
        '''
        try:
            user = User.objects.get(id=id)
        except Exception:
            return None
        # 这是关注的逻辑
        friendship = FriendShip()
        friendship.followed = self.user
        friendship.follower = user
        friendship.save()
        return True

中间的联系两个user的关系表

class FriendShip(models.Model):
    followed = models.ForeignKey(User,related_name='followed')
    follower = models.ForeignKey(User,related_name='follower')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,905评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,209评论 25 709
  • 一. Java基础部分.................................................
    wy_sure阅读 9,239评论 0 11
  • 1 瑶瑶坐在自己座位上,面前摊着英语课本,呆呆地,细眯着眼越过身边...
    非常道_faae阅读 3,754评论 16 28
  • 他在秀恩爱, 他曾对我说他的初恋还在,而后听过各种各样的说法,隐约知道他曾对一个女孩好出天际,却一直没有他恋爱的消...
    玩呐阅读 1,449评论 0 0