Я использую flask-marshmallow и mongoengine.
Также flask-restplus для моего сервера API.
Вот мой апи.py
class BoardSchema(ma.Schema):
class Meta:
fields = ('no', 'title', 'body', 'tags', 'created_at', 'views')
board_schema = BoardSchema()
boards_schema = BoardSchema(many=True)
class ArticleList(Resource):
def get(self):
articles = Board.objects.all()
return boards_schema.jsonify(articles)
модель.py
from datetime import datetime
from mongoengine import *
from config import DB_NAME
connect(DB_NAME)
class Board(Document):
d = datetime.now()
date = "{}-{}-{}".format(d.year, d.month, d.day)
no = SequenceField()
title = StringField(required=True)
body = StringField(required=True)
tags = ListField(StringField())
likes = ListField(StringField())
views = ListField(StringField())
password = StringField(required=True)
created_at = DateTimeField(default=date)
updated_at = DateTimeField(default=date)
Когда я обращаюсь к / article, это выглядит так ->
{
"body": "123",
"created_at": "2018-08-20T00:00:00+00:00",
"no": 1,
"tags": [
"MySQL",
"C"
],
"title": "\ud14c\uc2a4\ud2b8",
"views": [
"127.0.0.1"
]
}
в "views"
будет добавлен ip кто читал статью.
Но я хочу подсчитать весь список просмотров и включить его в свой результат.
Результат, который я хотел, здесь.
{
"body": "123",
"created_at": "2018-08-20T00:00:00+00:00",
"no": 1,
"tags": [
"MySQL",
"C"
],
"title": "\ud14c\uc2a4\ud2b8",
"views": 20
}
Я новичок в flask-marshmallow, поэтому я так запутался, как решить эту проблему.
Спасибо.
single_article = Board.objects.first()
single_article.views = single_article.views + 1
- person needtobe   schedule 20.08.2018views = IntField()
- person needtobe   schedule 20.08.2018views
должен бытьStringField
внутриListField
. Потому что IP-адрес каждого зрителя будет храниться в полях просмотра. Таким образом, один ip может увеличить количество просмотров. - person Hide   schedule 20.08.2018