首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django模型中设置主键

在Django模型中设置主键
EN

Stack Overflow用户
提问于 2017-10-07 15:34:46
回答 2查看 3.4K关注 0票数 0

我在我的模型中更改了主键。

代码语言:javascript
复制
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“值来创建两个条目。但是不知怎么的,模型中只有一个对象

代码语言:javascript
复制
>>> 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>]>
>>> 

有人能查一下吗?我是不是漏掉了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-07 16:37:29

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

代码语言:javascript
复制
a = lab(IP="1.2.3.4")
a.PingStatus = "1.2.3.4"
a.save()

同时创建具有所有参数的实例也会有所帮助:

代码语言:javascript
复制
b = lab.objects.create(...)
票数 1
EN

Stack Overflow用户

发布于 2017-10-07 15:47:46

尝试一次设置所有你想要的值。

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

而且,你没有遵循惯例。模型名称应该大写,字段名应该是snake_case。例如,实验室->实验室,PingStatus -> ping_status

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46622003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档