Django 5.0: Как создать объект без получения экземпляра объекта Foreign, связанного с ним?

В настоящее время у меня есть несколько моделей Django, определенных следующим образом:

Class Project(models.Model)
data = ...

Class Resource(models.Model):
    project = models.ForeignKey(Project, on_delete=models.CASCADE)

В моем views.py я пытаюсь создать новый ресурс, имея доступ к идентификатору проекта благодаря URL:

def create_resource(request, project_id):
    """ 
    Create a resource for a given project
    """
    new_resource = Resource.objects.create(project_id=project_id)
    return render(request,"resource.html",{"new":new_resource})

Здесь я пытаюсь создать ресурс без получения связанного с ним проекта (что кажется мне более эффективным, поскольку проект мне ни для чего не нужен). Для этого я использовал нотацию, описанную в документации project_id, чтобы получить идентификатор FK.

Но это не работает, Django говорит следующее, когда я пытаюсь отобразить страницу:

Ошибка значения в /create_resource/1 Невозможно присвоить значение "1": "Resource.project" должен быть экземпляром "Project".

Я нашел похожие вопросы в Интернете, и все они используют нотацию foreignfield_id для этого,

но в моем случае она не работает. Правда, я нашел только вопросы 10-15-летней давности, так что может быть, это изменилось с тех пор?

Моя версия Django: 5.0.3 , Связанный вопрос, опубликованный 13 лет назад: Post

Вернуться на верх