gpt4 book ai didi

python - 在 django 模型中类型转换对象

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:27 28 4
gpt4 key购买 nike

我正在使用 models.py 制作一个 django 项目,其代码如下:

class Record(models.Model):
id = models.AutoField(primary_key=True)

class TTAMRecord(Record):
client = models.ForeignKey(TTAMClient)

class TTAMClient(models.Model):
...

class Account(models.Model):
records = models.ManyToManyField(Record)
...

我还有以下代码将 TTAMRecord 插入 Accountrecords 中:

account = Account.objects.get(...)
client = TTAMClient.objects.create(...)
record = TTAMRecord.objects.create(..., client = client, ...)
account.records.add(record)

我想做(但不能)是在帐户的记录对象中调用客户端;例如:

account = Account.objects.get(...)
for record in account.records.all():
client = record.client
...

但是,如果我不允许这样做,因为这里的 record 存储为 Record (没有客户端)类型而不是 TTAMRecord(有客户端)类型...

知道如何转换对象吗?我想使用更通用的 Record 而不是 TTAMRecord 来实现此处未说明的某些目的...

最佳答案

由于Record不是抽象模型,它和其他模型一样有自己的表和生命周期。但是,您可以通过 record.ttamclient 访问相应的客户端对象,因此您可以将行更改为

account = Account.objects.get(...)
for record in account.records.all():
client = record.ttamclient
...

但是,如果您有多个派生类,这会有点麻烦。在这种情况下,您必须知道您引用的是哪个派生类并使用相应的属性名称。

关于python - 在 django 模型中类型转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962093/

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