Pregunta

Estoy limitando las opciones de contenido de contenido para una relación genérica utilizando limit_choices_to, pero muestra los modelos que ya no existen. Por ejemplo con este código:

 employer_content_type = models.ForeignKey(ContentType,
    limit_choices_to={"model__in": ('venue', 'festival')}, related_name="employer")

Recibo una lista de opciones que tiene duplicas, es decir, Festival, Festival, Lugar, Lugar

Sin embargo, cuando limito las opciones por la aplicación, en lugar de solo los modelos como este:

    employer_content_type = models.ForeignKey(ContentType,
          limit_choices_to={'app_label': 'contacts'}, related_name="employer")

Recibo una lista de todos los modelos sin duplicados, es decir, dirección, correo electrónico, festival, lugar

En un punto en mi desarrollo, creé una nueva aplicación ("Contactos") que fue un duplicado de una aplicación más antigua. Todos los modelos tenían los mismos nombres, etc. Al principio, pensé que esto estaba causando los duplicados, pero el problema no desapareció después de que me quitaron la aplicación antigua de Configuración. Y eliminó los modelos antiguos de la base de datos.

¡Creo que es un problema de caché, pero nunca configuro el almacenamiento en caché!

Entonces, ¿cómo puedo borrar el caché, o limitar las opciones por modelo y aplicación al mismo tiempo?

¡Gracias por su ayuda!

Note: Lamentablemente no pude agregar imágenes para que sea un poco difícil de describir!

¿Fue útil?

Solución

Busque la tabla de contentypes_contentype db y elimine modelos obsoletos allí.SyncDB también debe pedirle que elimine los modelos obsoletos de la tabla Tipo de contenido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top