django models 查寻 (select)方法

本文详细介绍了Django Models的代码实现,包括定义Group和Host模型类,并展示了如何创建记录、获取主机列表、单个主机及主机组,以及判断记录存在性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

创建两个记录,一条是管理组,一条是计算组

image

 

创建三个主机

image

1、 获取所有的主机列表

使用 models.Host.objects.all()

image

 

 

 

 

2、获取一台hostname 是node-5的主机

使用 models.Host.objects.get(hostname='node-5.domain.tld')

image

 

3、获取一个groupname 是manager的主机组

m = models.Group.objects.get(name='Manager')

m.host_set.select_related()

注: 其中host_set 中的host是一个表的名字

 

image

更简单的一条完成

m_l = models.Group.objects.get(name='Manager').host_set.select_related()

注: 其中host_set 中的host是一个表的名字

image

 

4、判断是否存在记录

使用filter来过滤,返回一个列表,

注:使用场景一般为判断记录是否存在或者其他等判断

image

 

转载于:https://www.cnblogs.com/zhaogaolong/articles/5197989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值