Как отправить данные в формате JSON в postman модели django, которая имеет внешний ключ к другой модели?

Я пытался отправить POST запрос к файлу django views.py с помощью postman. Это работало, когда я посылал POST и GET запросы к моделям django, которые не имели поля ForeignKey. Однако, когда я попытался отправить POST запрос к модели django, которая имеет поле ForeignKey, это не сработало. Мой вопрос в том, как отправить данные в формате JSON с помощью postman в модели django, которые имеют поле Foregin Key. Модели выглядят следующим образом:

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. Вы не можете ссылаться на несуществующий объект.

вы ссылаетесь на несуществующий id. Если вы используете внешний ключ в Django, он ссылается на первичный ключ ссылающейся модели. Так что решение таково

step 1: get the article with postman
step 2: copy one of the id of the article
step 3: paste the id to articleId
{
    "userId":"153344",
    "location":"Ethiopia",
    "eventType":"1",
    "articleId":"here",
    "communityId":"1234567",
    "source":"1",
    "timestamp":"123456"
    
}
Вернуться на верх