棉花糖循环导入

2023-12-15

我有两个彼此相关的对象。我希望能够通过相关属性来访问一个对象。

E.g. A.b_relationship.obj.some_property

如何在不创建循环导入的情况下执行此操作?

# lib.py
class Relationship(object):

    def __init__(self, obj):
        self.obj = obj


# a.py
class A(object):
    b_relationship = Relationship(B)

# b.py
class B(object):
    a_relationship = Relationship(A)

为了清楚起见,我添加了这个附加示例。显然 SQLAlchemy 已经解决了这个问题backref属性。我不确定在不破坏棉花糖工作方式的情况下将这种事情实现到棉花糖中对我来说有多可行。或许我需要改变一下心态?

from marshmallow import Schema
from marshmallow.fields import String

from project.database import db


class PersonModel(db.Model):
    name = db.Column(db.String)


class PetModel(db.Model):
    name = db.Column(db.String)
    owner = db.relationship('PersonModel', backref='pets')


class PersonSchema(Schema):
    name = fields.String(init_arg='some value')
    pets = fields.Relationship(related_schema=PetSchema)


class PetSchema(Schema):
    name = fields.String()
    owner = fields.Relationship(related_schema=PersonSchema)

从这里:http://marshmallow.readthedocs.org/en/latest/nesting.html#two-way-nesting

看看字符串是如何用于类的; AuthorSchema 指的是“BookSchema”:

class AuthorSchema(Schema):
    # Make sure to use the 'only' or 'exclude' params
    # to avoid infinite recursion
    books = fields.Nested('BookSchema', many=True, exclude=('author', ))
    class Meta:
        fields = ('id', 'name', 'books')

class BookSchema(Schema):
    author = fields.Nested(AuthorSchema, only=('id', 'name'))
    class Meta:
        fields = ('id', 'title', 'author')

我假设在你的情况下,你想做同样的事情many=False。我从来没有使用过棉花糖,但在 Django 中,它是类似的,我们使用像“my_app.MyClass”这样的类路径而不是MyClass以避免循环导入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

棉花糖循环导入 的相关文章

随机推荐

  • 使用 DI->Get Phalcon PHP 时出现“无效服务定义”

    这个问题与在 PhalconPHP 中附加多个配置数组 我正在尝试使用 get 方法从 DI 检索对象 对象是这样设置的 new array the array with the merged data Load it in a Phalc
  • VBA - 未定义子或函数

    我的代码不断出现 Sub 或 Function not Defined 编译错误 我想要完成的是通过单元格中的输入获取两个项目描述符 然后为该项目生成一个唯一的字母数字序列号 然后将其输出到屏幕上并将其保存在另一张纸上 诚然 这甚至没有开始
  • JPA SQL Server 没有 JDBC 类型的方言映射:-9

    我正在编写一个本机查询 例如 Query query entityManagerUtil getEntityManager createNativeQuery SELECT c NodeID c Code c Name FROM COM L
  • jQuery 可排序回调不起作用?

    我正在使用Sortable的组成部分jQuery用户界面 即使进行了这个简单的测试 回调似乎也根本不起作用
  • 自定义 UIPageControl 的位置

    我使用 github 中的项目作为参考 项目网址 https github com lephuocdai iOSsample tree master PageViewDemo 在这个项目中 我想在左上角位置显示 UIPageControl
  • Git 推送抛出错误:GH001:检测到大文件

    我正在将用 Swift 编写的 Xcode 项目推送到 GitHub 在这个项目中 我使用了适用于 IOS 的 GoogleMaps SDK 以及与其他一些框架集成的 GoogleMaps 框架 这使得这个项目如我预期的那样沉重 特别是有一
  • 通用 Windows InkCanvas 笔划在 RenderTargetBitmap.RenderAsync 上消失

    我尝试将 InkCanvas 的笔画渲染到 Windows 10 通用应用程序中的 RenderTargetBitmap 这是我的 xaml 代码
  • 如何在远程集群中使用 NodePort 访问 kubernetes 仪表板进行测试?

    我有一个在远程虚拟机 在 VSphere 上 中运行的测试 Kubernetes 集群 我可以通过以下方式完全访问虚拟机 ssh 他们有私人IP 知道我可以远程执行所有 kubectl 命令 如何公开服务并从集群外部访问它们 从我的远程笔记
  • Android 模拟器:音频输入失败

    每当我尝试启动模拟器时 这些错误都会出现在控制台中 audio Failed to create voice goldfish audio in qemu system i386 exe warning opening audio inpu
  • Grails:部署时间非常慢。 “解决依赖关系...”需要 10 多秒

    每次我对 Grails 应用程序进行微小更改时 部署它都需要 10 15 秒 大部分时间都在 解决依赖关系 Welcome to Grails 1 3 7 http grails org Resolving dependencies Dep
  • 创建后如何在 JTextField 中设置新文本?

    我有一个 jTextField 当我创建框架时 我将其值设置为一定的总和 这是启动代码 totalTextField setText itemsPriceTextField getText Float toString orderDetai
  • 如何在模拟器中测试 MFMailComposeViewController

    有没有办法测试从以下位置发送电子邮件MFMailComposeViewController在 iPhone 模拟器中 不 你不能在模拟器上测试它 我的意思是你的邮件不会被送达 我们将能够测试有限的东西 例如 视图将如何 当用户单击取消按钮时
  • Android中的自动滚动TextView将文本带入视图

    我有一个TextView我正在动态添加文本 in my main xml文件中我设置了属性以使我的最大行数为 19 且滚动条垂直 in the java我正在使用的文件textview setMovementMethod new Scrol
  • C 至 IEC 61131-3 IL 编译器

    我需要将一些现有的 C 代码移植到IEC 61131 3兼容的PLC 我可以选择将代码拆分为离散的功能块 并将这些块编织成标准解决方案 梯形图 FB 结构化文本等 但这需要分割 C 代码才能构建每个功能块 当查看 IEC 规范时 我意识到I
  • 错误:客户端必须具有 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION [重复]

    这个问题在这里已经有答案了 我在另一个应用程序中使用模块 在实现该模块之前 我将其设置为 API 级别 23 编译和目标 就像我的主项目一样 除了这个错误之外 这工作正常 问题是 自 marshmellow 以来 Google 已经改变了权
  • 在 WooCommerce 订单管理页面 (ACF) 中输出产品自定义字段

    对于 WooCommerce 我使用的是高级自定义字段插件跟踪我实际存储每个产品的位置 当收到订单时 我希望能够查看管理编辑订单页面并查看项目的存储位置 这样我就可以抓着它发货了 这是我想看到的图片 希望这是有道理的 我只想在 WordPr
  • NetworkStream 不支持查找操作

    我正在创建简单的代理服务器 但我遇到了一个奇怪的情况 我有以下代码 var clientRequestStream tcpClient GetStream var requestHeader clientRequestStream GetU
  • java在运行时生成类文件

    我需要在运行时生成类 每个类都映射到一个数据库表 此类是 ORM 中使用的模型类 当客户端指定要使用的数据库表时 我的应用程序检查是否存在相应的模型类 如果不存在 生成它 and load it用于使用和save it 这样下次我们就不需要
  • 在 Xcode 7.2 中添加 Font Awesome 时出现问题

    我正在尝试在我的 iPhone 应用程序中使用 FontAwesome 我已经安排好了一切 但每次我得到这个 question mark Image 我确信我已经在我的项目和 Plist 中正确添加了字体 这是我的项目设置 Step 1 在
  • 棉花糖循环导入

    我有两个彼此相关的对象 我希望能够通过相关属性来访问一个对象 E g A b relationship obj some property 如何在不创建循环导入的情况下执行此操作 lib py class Relationship obje