2014-12-17 4 views

ответ

2

Это зависит от вашего использования. Я собираюсь предположить, что вы хотите назначить переменное количество MAC-адресов для какой-либо другой модели, и каждый MAC-адрес может использоваться только один раз.

class Parent(models.Model): 
    pass 

class MacAddress(models.Model): 
    parent = models.ForeignKey(Parent, related_name='mac_addresses') 
    address = models.CharField(max_length = 20,null=True,blank=True, unique=True) 

Таким образом, для каждого адреса в массиве, вы бы создать новый экземпляр MacAddress

+0

Я должен хранить различные MAC-адреса для одного пользователя –

+0

как создать для каждого адреса в массиве, вы бы создать новый экземпляр MacAddress? –

+0

Да. '' 'MacAddress'' является еще одной моделью в моем примере. Вы можете использовать '' 'bulk_create''' или цикл for с' '' MacAddress.objects.create'''. – schillingt

0

Лучшего способа заключается в использовании ManyToMany поля.

Мой models.py

class MacAddress(models.Model): 
    address = models.CharField(max_length = 20,null=True,blank=True) 
    def __unicode__(self): 
     return self.address 

class UserProfile(models.Model): 
    user = models.OneToOneField(User,primary_key=True,db_index=True) 
    MAC=models.ManyToManyField(MacAddress) 
    def __unicode__(self): 
     return self.user.username 

views.py

mac = get_mac() 
      mac = (hex(mac)) 
      MacAdd=MacAddress() 
      MacAdd.address=mac 
      MacAdd.save() 
      profile.save() 
      profile.MAC.add(MacAdd) 
      profile.save() 
Смежные вопросы