代码之家  ›  专栏  ›  技术社区  ›  cegprakash

pyorient+Django:我应该如何正确地创建一个模型,以便序列化程序能够访问它们?

  •  0
  • cegprakash  · 技术社区  · 6 年前

    设置.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
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   JPG    6 年前

    将属性添加到模型中,

    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