django - pyorient + Django:我应该如何正确创建模型以便序列化程序可以访问它们?
问题描述
设置.py
from pyorient.ogm import declarative
Node = declarative.declarative_node()
Relationship = declarative.declarative_relationship()
模型/用户.py
from pyorient.ogm.property import *
from my_proj.settings import Node
class User(Node):
email = String(unique=True)
password = String()
序列化器/register_serializer.py
from rest_framework import serializers, validators
from users.models.user import User
class RegisterSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('email', 'password')
我得到以下异常
AttributeError: type object 'User' has no attribute '_meta
解决方案
将属性添加到您的模型中,
class User(Node):
email = String(unique=True)
password = String()
@property
def my_property(self):
return "my property data"
然后使用serializers.Serializer
而不是serializers.ModelSerializer
作为,
class RegisterSerializer(serializers.Serializer):
email = serializers.EmailField()
password = serializers.CharField()
my_property = serializers.CharField()
然后,您将获得序列化数据,
user_obj = User.object.get(id=1)
reg_serializer = RegisterSerializer(user_obj)
serialized_data = reg_serializer.data
推荐阅读
- python-3.x - 当条件已经满足时在while函数中循环?
- javascript - 如何使用 CSS 修剪段落?
- javascript - 仅从表格中的一行中选择文件
- ubuntu - 将 /dev/sda1 分区设置为只读后无法访问 GCP VM
- numpy - 为什么 PyTorch 和 NumPy 之间的逆结果不同
- git - 如何在 GitHub 中同步被忽略的文件
- typescript - 如何为打字稿键入 JSON 文件?
- python - 如何在不更改 Pandas 分组的情况下对数据框进行排序?
- ms-access - 插入带有和不带有 Null 值的外键
- c++ - 在多继承类中使用非类型模板参数消除重载成员函数的歧义