在Django模型中设置主键

时间:2017-10-07 15:34:46

标签: python django python-2.7

我在模型中更改了主键

class lab(models.Model):
    IP = models.CharField(max_length=250 , primary_key = True)
    PingStatus = models.CharField(max_length=250)
    SSHConnectivity = models.CharField(max_length=250)
    SSHLogin = models.CharField(max_length=250)
    DeviceType = models.CharField(max_length=250)
    DeviceVersion = models.CharField(max_length=500)

我试图通过分配两个不同的" IP"来做两个条目。实验室对象的值。但不知何故,模型中只有一个对象

>>> a=lab(IP="1.2.3.4")
>>> a=lab(PingStatus="1.2.3.4")
>>> a=lab(SSHConnectivity="1.2.3.4")
>>> a=lab(SSHLogin="1.2.3.4")
>>> a=lab(DeviceType="1.2.3.4")
>>> a=lab(DeviceVersion="1.2.3.4")
>>> a.save()
>>> lab.objects.all()
<QuerySet [<lab: lab object>]>
>>> a=lab(IP="1.2.3.5")
>>> a=lab(PingStatus="1.2.3.4")
>>> a=lab(SSHConnectivity="1.2.3.4")
>>> a=lab(SSHLogin="1.2.3.4")
>>> a=lab(DeviceType="1.2.3.4")
>>> a=lab(DeviceVersion="1.2.3.4")
>>> a.save()
>>> lab.objects.all()
<QuerySet [<lab: lab object>]>
>>> b=lab(IP="1.2.3.5")
>>> b=lab(PingStatus="1.2.3.4")
>>> b=lab(SSHConnectivity="1.2.3.4")
>>> 
>>> b=lab(SSHLogin="1.2.3.4")
>>> b=lab(DeviceType="1.2.3.4")
>>> b=lab(DeviceVersion="1.2.3.4")
>>> b.save()
>>> lab.objects.all()
<QuerySet [<lab: lab object>]>
>>> 

有人可以检查吗?我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:1)

您应该创建该类的实例,然后为该实例设置值,例如:

a = lab(IP="1.2.3.4")
a.PingStatus = "1.2.3.4"
a.save()

创建一次性设置所有参数的实例也应该有所帮助:

b = lab.objects.create(...)

答案 1 :(得分:0)

尝试一次设置所需的所有值,例如

b = lab.objects.create(value1='xx', value2='yy', value3='zz')

此外,您不遵守惯例。您的模型名称应大写,您的字段名称应为snake_case。例如,实验室 - &gt; Lab,PingStatus - &gt; ping_status