如何将邮递员中的 JSON 格式数据发送到具有另一个模型外键的 django 模型?

How to send JSON format data in postman to django models that have a foreign key to another model?

我尝试使用邮递员向 django views.py 文件发送 POST 请求。 当我向没有 ForeignKey 字段的 django 模型发送 POST 和 GET 请求时,它正在工作。但是,当我尝试向具有 ForeignKey 字段的 django 模型发送 POST 请求时,它无法正常工作。我的问题是如何使用 postmanJSON 格式数据 发送到具有 Foregin Key 字段的 django 模型。 机型如下:

class Article(models.Model):
    authorId=models.CharField(max_length=100)
    authorResidence=models.CharField(max_length=100)
    communtId=models.CharField(max_length=100)
    content=models.TextField()
    contentId=models.CharField(max_length=100)
    source=models.CharField(max_length=100)
    timestamp=models.IntegerField() 
    title=models.CharField(max_length=100)
    
class Interactions(models.Model):
    userId=models.CharField(max_length=100,unique=True)
    location=models.CharField(max_length=100)
    eventType=models.IntegerField(unique=True)
    articleId=models.ForeignKey(Article,on_delete=models.CASCADE)
    communityId=models.CharField(max_length=100)
    source=models.IntegerField()
    timestamp=models.IntegerField()

我试过这种方式(在postman):

{
    "userId":"153344",
    "location":"Ethiopia",
    "eventType":"1",
    "articleId":"67353536",
    "communityId":"1234567",
    "source":"1",
    "timestamp":"123456"
    
}

如您所见,articleId 是一个 foreignKey 字段。 这是输出:

{
    "articleId": [
        "Invalid pk \"67353536\" - object does not exist."
    ]
}

您收到此错误是因为您提交的 articleId 不存在。如果有一篇文章具有您发送的 articleId 值,您将不会收到错误。在保存您发送的数据之前,会检查是否存在具有 articleId 值的文章。您不能 link 到不存在的对象。

Django 模型默认有 id 字段,所以模型的主键将是 id。如果您在 Django 模型中使用外键,它会引用引用模型的主键。 您面临的是,您引用的是不存在的 ID - 意思是错误的 ID,或者,不存在具有该 ID 的文章实例。

step 1: get all the articles with postman
step 2: copy one of the id's of the articles
step 3: paste that id to articleId like shown below, if id is 2 then you should right like this

{
    "userId":"153344",
    "location":"Ethiopia",
    "eventType":"1",
    "articleId":"2",
    "communityId":"1234567",
    "source":"1",
    "timestamp":"123456"
    
}