选择在服务层架构中放置业务逻辑的位置

问题描述

我有两个模型,User 和 Post。一个用户有很多帖子。如果我想获取用户的所有帖子,该逻辑属于 UserService 还是 PostService?

其实我有这个,这样好吗?

型号

class User(models.Model): 
   username = models.CharField()

class Post(models.Model):
   user = models.ForeignKey(User,related_name = 'posts')

服务

class UserService(object):
   def __init__(self):
       self.repository = UserRepository()

   def get_all_user_posts(self,user_id):
       return self.repository.get_posts(user_id)
       

存储库

class UserRepository(object):
   def get_posts(self,user_id):
       user = self.get(user_id)
       return user.posts.all()

控制器帖子

def index(request):
   ''' Show all posts of user '''
    posts =  UserService().get_all_user_posts(request.user.id)
    return render(request,'index.html',{'posts': posts})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)