我正在创建一个简单的博客应用程序,并希望用户能够喜欢一个职位。
就可伸缩性而言,我决定最好将喜欢作为一个单独的表,由指向用户和帖子的指针组成。
我已经设法启用了帖子请求,向模型添加了一个类似的内容,但是帖子模型中的likes
字段没有增加。
我尝试过在序列化器中使用一个简单的likes += 1
技术,但没有做任何改变,现在使用了一个F
字符串,但仍然没有做任何改变。我对Django还很陌生,我怀疑这可能是因为我试图在CreateAPIView
序列化器中更新一个不同模型上的字段,但我不确定。
这是我目前掌握的情况
第一个
谢谢你
2条答案
按热度按时间ljsrvy3e1#
您只能在执行查询时使用
F()
。或者如果你不介意多做一个查询,还要确保帖子的赞数始终正确:
63lcw9qa2#
赞没有更新的主要原因是,您在LikeView中写道
def like(self, request, format=None):
代替
def post(self, request, *args, **kwargs):
更新视图,如下所示:
在上面的代码中,您将Like对象保存到变量
like
中,然后获取post对象,并使用post外键的related name
找到计数。此外,您的模型结构允许一个用户多次赞一个帖子。为了防止这种情况,您可以将唯一的一起添加到赞模型中。