gpt4 book ai didi

python - Django 模型,与反向引用的一对多关系 [如何]

转载 作者:太空狗 更新时间:2023-10-30 02:45:17 24 4
gpt4 key购买 nike

我有一个数据库,我使用 SQLAlchemy 填充了对象,但我不知道如何在 Django 中制作模型。

我需要 Show 对象通过关系拥有 Episode 对象数组。在数据库中,所有 Episode 对象都有一个“show_title”列,所有 Show 对象都有“episodes”

使用 SQLAlchemy 对象看起来像这样,

   class AlphaShow(Base) :    
__tablename__ = 'show'
title = Column(UnicodeText, primary_key = True)
description = Column(UnicodeText)
image = Column(UnicodeText)
episodes = relationship("Episode", backref="show")
def __init__(self,_meta) :
self.title = _meta.title
self.image = _meta.image
self.description = _meta.description

class Episode (Base) : #was without base
__tablename__= 'episode'
title = Column(UnicodeText, primary_key = True)
link = Column(UnicodeText)
show_title = Column(UnicodeText, ForeignKey('show.title'))

def __init__(self, _title, _link) :
self.title = _title
self.link = _link

我如何在 Django 中制作模型?我试过了,但它不起作用,

class Shows(models.Model) :
episodes = []
title = models.TextField(primary_key=True)
description = models.TextField()
image = models.TextField()
class Meta:
db_table = 'shows'
def __str__(self):
return self.title


class Episode(models.Model) :

title = models.TextField(primary_key=True)
link = models.TextField()
show_title = models.ForeignKey(Shows)

class Meta:
db_table = 'episodes'
def __str__(self):
return self.title

我想我缺少的是,什么是 Django 等同于 SQLAlchemy 的

episodes = relationship("Episode", backref="show")

任何帮助将不胜感激谢谢!

最佳答案

试试这个

class Shows(models.Model) :
title = models.TextField(primary_key=True)
description = models.TextField()
image = models.TextField()
class Meta:
db_table = 'shows'
def __str__(self):
return self.title


class Episode(models.Model) :
show = models.ForeignKey(Show, related_name="episodes")
title = models.TextField(primary_key=True)
link = models.TextField()
show_title = models.ForeignKey(Shows)

class Meta:
db_table = 'episodes'
def __str__(self):
return self.title

关于python - Django 模型,与反向引用的一对多关系 [如何],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25229610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com