Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 21, 2010 14:16:05

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Связь с разными таблицами!!!

Всем привет!
Есть небольшой фрагмент кода:

class IpNetwork(models.Model):
vlan_name = models.CharField(max_length=7, verbose_name="Input name_vlan")
ip_gw = models.IPAddressField(verbose_name="Gateway IP")
mask = models.IPAddressField(verbose_name="Mask network")
network = models.IPAddressField(verbose_name="Network")
nat = models.IPAddressField(blank=True,null=True,verbose_name="IP address nat")
gen_dhcp = models.IntegerField(choices=((0,'Deny'),(1,'Access')),default="1",verbose_name="Include dhcp.conf")
desc = models.CharField(blank=True,null=True,max_length=100,default="",verbose_name="descriptions network")
routers = models.IPAddressField(blank=True,null=True)

def __unicode__(self):
return '%s' % (self.vlan_name)

class AddClient(models.Model):
uname = models.CharField(max_length=50,verbose_name="Input login")
mac = models.CharField(max_length=17,verbose_name="Input mac")
ip = models.IPAddressField()
vlan_id = models.ForeignKey(IpNetwork, verbose_name="Select vlan")
is_deleted = models.BooleanField('deleted', default=False)

def __unicode__(self):
return '%s\t%s\t%s' % (self.uname, self.ip, self.mac)
Задача для себя с подсказкой вашей, получается когда я создаю нового AddClient я выбираю vlan_id связь IP+VLAN но VLAN я указываю в ручную, а необходимо когда я ввожу нового клиента с IP адресом 10.1.11.1 если в class IpNetwork есть сеть 10.1.11.0 то тогда автоматом подставить vlan_id. Вроде как то так.



Отредактировано (Фев. 21, 2010 18:37:10)

Офлайн

#2 Фев. 25, 2010 11:57:37

Чел_вТапКах
От:
Зарегистрирован: 2009-07-22
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

Связь с разными таблицами!!!

попробуй в модели сделать выборку из Ipnetwork что то вроде

Ipnetwork.objects.get(Network = mynet)
и этот объект и передать в vlan_id



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version