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
для этого,
Моя версия Django: 5.0.3 , Связанный вопрос, опубликованный 13 лет назад: Post