Estoy trabajando en un proyecto django y no estoy seguro del mejor formato de la URL para acceder a una página de objeto en particular.Django - Diseño de URL y mejores prácticas para identificar un objeto
estaba pensando en estas alternativas:
1) Using the autoincremental ID => .com/object/15
Ésta es la forma más sencilla y bien conocida de hacer eso. "id_object" es el ID autoincremental generado por el motor de la base de datos al guardar el objeto. El problema que encuentro de esta manera es que las URL son iterables simples. Por lo tanto, podemos crear un script simple y visitar todas las páginas incrementando el ID en la URL. Tal vez un problema de seguridad.
2) Using a <hash_id> => .com/object/c30204225d8311e185c3002219f52617
El "hash_id" debe haber algún valor de cadena alfanumérica, generada por ejemplo, con funciones UUID. Es una buena idea porque no es iterable. Pero generar identificadores únicos "aleatorios" puede causar algunos problemas.
3) Using a Slug => .com/object/some-slug-generated-with-the-object
Django incluye un campo "babosa" para los modelos, y que puede ser utilizado para identificar un objeto en la URL. El problema que encuentro en este caso es que la babosa puede cambiar en el tiempo, generando URL rotas. Si algún motor de búsqueda como Google indexó esta URL rota, los usuarios pueden ser guiados a páginas "no encontradas" y nuestro rango de página puede disminuir. Congelar el Slug puede ser una solución. Quiero decir, guarde la babosa solo en la acción "Agregar", y no en la de "Actualizar". Pero la babosa ahora puede representar algo viejo o incorrecto.
Todas las opciones tienen ventajas y desventajas. Puede estar usando alguna combinación de ellos algunos de los problemas. ¿Qué piensas de eso?
mirada en dirección de esta pregunta y usted tiene su respuesta :-) –