django models的代码
class
Group(models.Model): name = models.CharField(max_length=64
) def __unicode__
(self): return
self.name class
Host(models.Model): hostname = models.CharField(max_length=64
) host_group = models.ForeignKey('Group', blank=True, null=
True) ip_manager = models.GenericIPAddressField(max_length=64, blank=True, null=
True) ip_storage = models.GenericIPAddressField(max_length=64, blank=True, null=
True) ip_public = models.GenericIPAddressField(max_length=64, blank=True, null=
True) ip_pxe = models.GenericIPAddressField(max_length=64, blank=True, null=
True) username = models.CharField(max_length=64, blank=True, null=
True) # password = models.CharField(max_length=64, blank=True, null=True)
status_level
=
( ('Ok', "ok"
), ('Warning ', "Warning"
), ('Error ', "Error"
), ) status = models.CharField(choices=status_level, max_length=64, blank=True, null=
True) def __unicode__
(self): return self.hostname
创建两个记录,一条是管理组,一条是计算组
创建三个主机
1、 获取所有的主机列表
使用 models.Host.objects.all()
2、获取一台hostname 是node-5的主机
使用 models.Host.objects.get(hostname='node-5.domain.tld')
3、获取一个groupname 是manager的主机组
m = models.Group.objects.get(name='Manager')
m.host_set.select_related()
注: 其中host_set 中的host是一个表的名字
更简单的一条完成
m_l = models.Group.objects.get(name='Manager').host_set.select_related()
注: 其中host_set 中的host是一个表的名字
4、判断是否存在记录
使用filter来过滤,返回一个列表,
注:使用场景一般为判断记录是否存在或者其他等判断