【发布时间】:2015-10-27 14:03:49
【问题描述】:
我发现 PostgreSQL 有一个模型框架:
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import column_property
from ..base import Base
class Staff(Base):
__tablename__ = 'account'
id = Column(Integer, primary_key=True)
name = column_property(Column(String(30), nullable=False))
surname = column_property(Column(String(30)))
otch = column_property(Column(String(30), nullable=False))
b_date = column_property(Column(String(30)))
pol = column_property(Column(String(3), nullable=False))
email = column_property(Column(String(100)))
gruppa = column_property(Column(String(30), nullable=False))
fak = column_property(Column(String(30)))
profile = column_property(Column(String(30), nullable=False))
有一种观点认为通过序列化器必须给出详细信息:
if request.method == 'GET':
session = request.sa_session
h = session.query(Staff).all()
for i in h:
print i.name
serializer = TaskSerializer(h, many=True)
return Response(serializer.data)
描述TaskSerializer:
from db.admin.db import Staff
from rest_framework import serializers
class TaskSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Staff
但是运行的时候,出现错误:
类型对象'Staff'没有属性'_meta'
笑话是,如果模型是通过Model.model构建的:
from django.db import models
class Staff(models.Model):
name = models.CharField(max_length=30)
surname = models.CharField(max_length=30)
otch = models.CharField(max_length=30)
b_date = models.CharField(max_length=30)
pol = models.CharField(max_length=3)
email = models.CharField(max_length=100)
gruppa = models.CharField(max_length=30)
fak = models.CharField(max_length=30)
profile = models.CharField(max_length=30)
一切正常。
是否可以使用 SQLAlchemy 模型或仅使用 Django 的models.Model?
【问题讨论】:
标签: python django postgresql sqlalchemy django-rest-framework