django - django 模型可以有嵌入类吗?

标签 django django-models model

我想要一个像这样的 django 模型:

class Model(models.Model):
 string = models.CharField()
 class ContactDetails:
  phone = models.IntegerField()

这可能吗?我尝试过谷歌搜索,但它似乎没有回答我的问题

这意味着我在访问时可以:

Model().ContactDetails.phone

像这样工作:)

最佳答案

它可以具有嵌入的类(常见情况是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 - django 模型可以有嵌入类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2669125/

相关文章:

python - 如何在django中根据结束日期自动删除记录

django - 管理字段无法在 django 中使用tinymce和filebrowser保存

python - MySQLdb 未将表设置为 UTF-8

mysql - Django:在给定多个 OR 参数的情况下获取特定项目的下一个和上一个项目 ID

python - 限制外键数量,每个外键指一周中的某一天

django自定义标签内联或 block

Django 1.3 : Problems with UserProfile after upgrade

mongodb - 模型中的 Sails.js expireAfterSeconds 选项

javascript - 将 MVC 模型数据传递给客户端 TypeScript 代码

database - CakePHP 数据库表,缺少数据源默认值