Как получить объект по идентификатору в Django
Я пытаюсь получить конкретный объект из Django... Когда я использую фильтр, он возвращает несколько объектов, а мне нужен только один, и я не хочу, чтобы мои поля были уникальными... Есть ли способ получить объект по id, поскольку id будет единственным уникальным полем по умолчанию в Django Sqlite
Вы можете использовать два метода get()
или лучше get_object_or_404()
, так как он вызывает get() на данном менеджере моделей, но он поднимает Http404 вместо исключения DoesNotExist модели .
Выполнение get()
:
SomeModelName.objects.get(id=id)
Выполнение get_object_or_404()
:
from django.shortcuts import get_object_or_404
get_object_or_404(SomeModelName,id=id)
Вы можете выбрать один из этих методов, чтобы получить объект, связанный с id
, который вы ввели:
get_object_or_404()
функция:
from django.shortcuts import get_object_or_404
model_object = get_object_or_404(ModelName, id=id)
.get_or_create()
метод:
model_object, created = ModelName.objects.get_or_create(id=id)
.filter()
и .first()
методы:
model_object = ModelName.objects.filter(id=id).first()
Yourtablename.object.get(pk=id)
Или используйте фильтр