Это в основном то, что вы делаете. Каждый метод имеет свои преимущества:
- При переполнении стека, поскольку заголовок вопроса можно изменить, идентификатор используется для постоянной ссылки на вопрос, а URL-адреса с неправильным заголовком просто перенаправляют.
- Использование слага в качестве постоянного идентификатора означает, что слаг никогда не сможет измениться. Изменение заголовка будет возможно, но это может показаться запутанным, и вам лучше перенаправить слаг. Кроме того, слизни либо должны быть глобально уникальными, либо вам нужно найти способ обеспечить уникальность для каждого года / месяца / дня или чего-либо еще.
Вам понадобится индекс базы данных для эффективного поиска слагов. К счастью, поле Slug в Django автоматически создает индекс базы данных.
Возможно, вы все еще хотите иметь числовой первичный ключ, просто чтобы упростить остальную часть вашей базы данных.