目前,我的代码中有很多Python对象,类似于以下内容:

class MyClass():
  def __init__(self, name, friends):
      self.myName = name
      self.myFriends = [str(x) for x in friends]

现在我想把它变成一个Django模型,其中self.myName是一个字符串字段,self.myFriends是一个字符串列表.

from django.db import models

class myDjangoModelClass():
    myName = models.CharField(max_length=64)
    myFriends = ??? # what goes here?

由于列表在Python中是如此常见的数据 struct ,我多少希望它有一个Django模型字段.我知道我可以使用ManyToMany或OneToMany关系,但我希望在代码中避免这种额外的间接性.

Edit:

我加了这个related question,人们可能会觉得有用.

推荐答案

这种关系是否可以更好地表示为Friends表的一对多外键关系?我知道myFriends只是字符串,但我认为更好的设计是创建Friend模型,让MyClass包含与结果表的外键关系.

Django相关问答推荐

如何在django模板中渲染标签集

使用自定义模型注册后,Django无法登录

Django ORM ForeignKey查询使用注释设置输出

DjangoRestFramework 解析错误:"多部分表单解析错误多部分中的无效边界:None"

Django prefetch_related 与 3 个不直接相关的模型

Docker 中的 Django检测到更改...,正在重新加载错误

lower() 在 None 上被调用

Django - 使用在 URL 中传递的父类主键从子类中过滤对象

如何根据查询集中的条件返回多个聚合?

初始填充 Django 表单

Django JSONField 过滤

如何在 forms.Form 子类上动态设置 models.ModelChoiceField 的查询集

InvalidBasesError:无法解析 [] 的基础

在 django 中的查询集上运行 explain的简单方法

在python中查找对对象的所有引用

使用 Gunicorn 运行 Django - 最佳实践

在 Django 中舍入小数点

Django 在视图之间传递数据

将属性添加到 Django 模型的 Meta 类中

django.urls.path中name参数的作用是什么?