2012-07-10 997 views
0

可以说我必须在django.how中的特定类中保存类数组吗? for eg.I have a class Books.I希望在课本中存储惊悚书籍数组。Django模型和数据库表的语法是什么?如何在django模型中存储类的数组

+0

你是什么意思'在类中保存类数组?你不保存类 - 你保存对象。你的代码在哪里?你有什么尝试?对不起,你的问题还不清楚,你似乎缺少一些Django的基础知识。 – freakish 2012-07-10 07:24:05

+0

我一直在研究java/hibernate.My查询就像在java(POJO类)中,例如。我们有一个POJO类Class Company {int id,String name,Employee [] employee with getter/setter methods} .Employee是另一个Pojo类及其相关数据。我想用django模型重新编码。我该如何继续? – user1513944 2012-07-10 07:41:23

回答

1

你看过the Django tutorial吗?一切都在那里解释。不过,答案可能实际上取决于您使用的数据库。但是,假设你使用传统的SQL,那么这里就是ORM是如何工作的:

1)可以定义主要型号:

class Company(models.Model): 
    name = models.CharField(max_length = 100) 
    # some other fields if necessary 

2)可以定义指向的主力机型对应的子模型:

class Employer(models.Model): 
    name = models.CharField(max_length = 100) 
    company = models.ForeignKey(Company) # <----- relation here 
    # some other fields if necessary 

3)如果您有Company类型的对象comp,那么你可以使用访问该公司的所有雇主:

comp.employer_set.all() 

employer_set属性来自Employer类的名称加上_set后缀。您可以为此字段定义自己的名称。你只需要修改Employer级位的定义,像这样:

class Employer(models.Model): 
    name = models.CharField(max_length = 100) 
    # note the change 
    company = models.ForeignKey(Company, related_name = 'employers') 

现在你可以使用:

comp.employers.all() 

这些都是基础知识。关系数据库在主模型中实际创建引用数组是不可能的(或者至少非常低效)。但是,如果您使用MongoDB等非关系数据库,情况并非如此。

+0

是的,我已经通过了Django教程,以及ORM的工作原理。我怀疑如何使用django模型来表示数据库中的对象数组。我很抱歉,我无法正确解释问题。 – user1513944 2012-07-10 10:53:16

相关问题