django 模型可以嵌入类吗?
Posted
技术标签:
【中文标题】django 模型可以嵌入类吗?【英文标题】:Can a django model have embed classes? 【发布时间】:2011-02-09 18:42:25 【问题描述】:我想要一个这样的 django 模型:
class Model(models.Model):
string = models.CharField()
class ContactDetails:
phone = models.IntegerField()
这可能吗?我试过谷歌搜索,但它似乎没有回答我的问题
这意味着我在访问时会拥有:
Model().ContactDetails.phone
这样工作:)
乔
【问题讨论】:
【参考方案1】:它可以有嵌入的类(常见的情况是class Meta
),但任何models.*Field
成员都会被忽略。这在 SQL 中没有意义。
你想要的是多对一:
class Thing(models.Model): # Don't name this class 'Model'!
name = models.CharField(max_length=100)
class ContactDetails:
parent = models.ForeignKey(Thing, related_name="contactDetails")
phone = models.IntegerField()
然后,访问:
thing = Thing();
# ... set up thing ...
thing.save()
contact1 = ContactDetails(parent=thing)
# ... set up contact1 ...
contact1.save()
contact2 = ContactDetails(parent=thing)
# ... set up contact2 ...
contact2.save()
# ...
thing.contactDetails.all()
# returns a list with contact1 and contact2
或其他。
【讨论】:
以上是关于django 模型可以嵌入类吗?的主要内容,如果未能解决你的问题,请参考以下文章