在django模型中存储字符数组的最佳方法是什么?

时间:2014-12-17 18:06:27

标签: python django django-models django-1.7

我有一组MAC地址。如何将它们存储在Django 1.7模型中?我的代码是:

MAC=models.CharField(max_length = 20,null=True,blank=True)

我必须为单个用户存储不同的MAC地址

2 个答案:

答案 0 :(得分: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的新实例

答案 1 :(得分: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()