Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django中保存模型记录_Django - Fatal编程技术网

如何在Django中保存模型记录

如何在Django中保存模型记录,django,Django,它要求一个主键字段。 如何在创建期间获取主键字段值?从模型中删除id字段,Django会自动添加该字段 .save()在这里是不必要的,.objects.create已经这样做了 最好使用关键字参数,这样你就不会在参数的顺序上犯错误,人们知道什么是: class Item(models.Model): id = models.AutoField(primary_key=True) userId = models.ForeignKey(User,

它要求一个主键字段。
如何在创建期间获取主键字段值?

从模型中删除
id
字段,Django会自动添加该字段

.save()
在这里是不必要的,
.objects.create
已经这样做了

最好使用关键字参数,这样你就不会在参数的顺序上犯错误,人们知道什么是:

class Item(models.Model):
       id = models.AutoField(primary_key=True)            
       userId = models.ForeignKey(User, on_delete=models.CASCADE)          
       categoryId = models.ForeignKey(Category, on_delete=models.CASCADE)
       itemName = models.CharField(max_length=100)     
       startDate = models.DateTimeField('startDate')
       endDate = models.DateTimeField('endDate')       
       priority = models.IntegerField(default=0)
       progress = models.IntegerField(default=0)
       own = models.IntegerField(default=0)
       advanced = models.IntegerField(default=0)


    item = Item.objects.create(request.user.id,categoryId,txtItemName,txtStartDate,txtEndDate,priorityName,progressStatus,ownStatus,advanced)
            item.save()
您不必为
id
字段提供值,因为它是自动设置的

但是等等:您可能从
userID
categoryID
字段中得到错误。您应该为他们分配一个相关字段的实例,或者使用字段名的
\u id
形式:

item = Item.objects.create(
  userId=request.user.id,
  categoryId=categoryId,
  itemName=txtItemName,
  startDate=txtStartDate,
  endDate=txtEndDate,
  priority=priorityName,
  progress=progressStatus,
  own=ownStatus,
  advanced=advanced)
因此,这些字段名的“ID”部分应该被删除,这是令人困惑的。然后它变成:

userID=request.user,
categoryID_id=categoryId,

从模型中删除
id
字段,Django会自动添加该字段

.save()
在这里是不必要的,
.objects.create
已经这样做了

最好使用关键字参数,这样你就不会在参数的顺序上犯错误,人们知道什么是:

class Item(models.Model):
       id = models.AutoField(primary_key=True)            
       userId = models.ForeignKey(User, on_delete=models.CASCADE)          
       categoryId = models.ForeignKey(Category, on_delete=models.CASCADE)
       itemName = models.CharField(max_length=100)     
       startDate = models.DateTimeField('startDate')
       endDate = models.DateTimeField('endDate')       
       priority = models.IntegerField(default=0)
       progress = models.IntegerField(default=0)
       own = models.IntegerField(default=0)
       advanced = models.IntegerField(default=0)


    item = Item.objects.create(request.user.id,categoryId,txtItemName,txtStartDate,txtEndDate,priorityName,progressStatus,ownStatus,advanced)
            item.save()
您不必为
id
字段提供值,因为它是自动设置的

但是等等:您可能从
userID
categoryID
字段中得到错误。您应该为他们分配一个相关字段的实例,或者使用字段名的
\u id
形式:

item = Item.objects.create(
  userId=request.user.id,
  categoryId=categoryId,
  itemName=txtItemName,
  startDate=txtStartDate,
  endDate=txtEndDate,
  priority=priorityName,
  progress=progressStatus,
  own=ownStatus,
  advanced=advanced)
因此,这些字段名的“ID”部分应该被删除,这是令人困惑的。然后它变成:

userID=request.user,
categoryID_id=categoryId,

无法分配“”:“Item.userId”必须是“User”实例。如果您尚未访问该用户的任何属性,并且Django已推迟决定是否存在当前用户,则会得到该实例。您可能应该检查该用户是否已登录(使用request.User.is\u authenticated())因为如果没有用户id,你怎么为用户存储记录呢!!!显然,我做了另一个用户模型,这是造成问题的原因!!!ThanksCannot assign“”:“Item.userId”必须是一个“User”实例。如果您尚未访问该用户的任何属性,并且Django已推迟决定是否确实存在当前用户,则会得到该实例。您可能应该检查该用户是否已登录(使用request.User.is_authenticated())因为如果没有用户id,你怎么为用户存储记录呢!!!显然,我做了另一个用户模型,这是造成问题的原因!!!谢谢