【问题标题】:Show ForeignKeyField directly in Flask-Peewee在 Flask-Peewee 中直接显示 ForeignKeyField
【发布时间】:2014-05-13 18:05:12
【问题描述】:

我已经使用 Flask-Peewee API 库设置了一个 API:

class ActivityResource(RestResource):
    exclude = ('id', 'course')

class CourseResource(RestResource):
    exclude = ('id')

class SessionResource(RestResource):
    def get_query(self):
        identifier = get_identifier()
        student = Student.get(Student.identifier == identifier)
        from = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
        to = datetime(2014, 6, 15)
        return self.model.select().where(Session.date.between(from, to)).join(Activity).join(Course).join(StuCouRel).join(Student).where(Student.id == student.id).order_by(Session.date, Session.begin_time, Session.end_time)
    paginate_by = None
    include_resources = {
    'activity': ActivityResource,
    'course': CourseResource
    }
    exclude = ('id')

这将输出如下内容:

[
  {
    "duration": 7200,
    "activity": {
      "name": "MyActivityName"
    },
    "course": {
      "name": "MyCourseName"
    },
    "end_time": "18:00",
    "begin_time": "16:00",
    "date": "03-04-2014"
  },
  ...
]

然而,我想得到的是:

[
 {
   "duration": 7200,
   "activity": "MyActivityName",
   "course": "MyCourseName",
   "end_time": "18:00",
   "begin_time": "16:00",
   "date": "03-04-2014"
  },
  ...
]

我已阅读文档并尝试阅读 the source code itself,但我真的不知道如何使其工作。任何帮助将不胜感激。

【问题讨论】:

    标签: python flask-peewee


    【解决方案1】:

    我使用 prepare_data() 钩子完成了这项工作:

    def prepare_data(self, obj, data):
            data["activity"] = obj.activity.name
            data["course"] = obj.course.name
            return data
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      相关资源
      最近更新 更多