Мне нужно стол с отношением.Что лучше? city.state.id или city.state_id
государственный
- идентификатор
- имя
Город
- идентификатор
- имя
- состояние
Что лучше в исполнении?
city.state.id
или city.state_id
Мне нужно стол с отношением.Что лучше? city.state.id или city.state_id
Что лучше в исполнении?
city.state.id
или city.state_id
city.state_id
лучше в любом случае. city.state
сделает еще один выбор из базы данных. Вы можете избежать этого, используя select_related
. Если вам нужен только id
ключа foriegn, вам не нужно select_related
здесь. Просто сделайте city.state_id
(так как идентификатор ключа foriegn будет извлекаться в запросе, который дает объект city
).
city.state_id
лучше city.state.id
. Потому что он делает только запрос вместо двух.
BTW, вы можете использовать Django Debug Toolbar для отладки запросов.
<field>_id
поле вы видите это имя базы данных столбца
За кулисами, Django добавляет «_id» к имени поля, чтобы создать его имя столбца базы данных. В приведенном выше примере, таблица базы данных для модели автомобиля будет иметь manufacturer_id колонки
Таким образом, это означает, что не нужно делать отдельный запрос для получения экземпляра внешнего ключа (см Select a single field from a foreign key для более подробной информации).
Но это предполагает, что вы не использовали select_related
или prefetch_related
Вы пытались сделать бенчмарк? Доступ к состоянию ранее? – Sayse
@Sayse Нет чувак. Я не знаю, как я могу сделать бенчмарк! и состояние не доступно! – Chalist