queryset query example python django django-models

python - example - django queryset



Django: nombre del modelo clash (1)

Estoy tratando de usar diferentes aplicaciones de código abierto en mi proyecto. El problema es que hay un mismo nombre de modelo utilizado por dos aplicaciones diferentes con su propia definición de modelo.

Intenté usar:

class Meta: db_table = "db_name"

pero no funcionó. Todavía estoy obteniendo un error de clasificación de nombre de campo en syncdb. Alguna sugerencia.

Actualizar

En realidad estoy tratando de integrar Satchmo con Pinax. Y el error es:

Error: uno o más modelos no validaron:

contact.contact: El acceso para el campo ''usuario'' choca con el campo m2m relacionado ''User.contact_set''. Agregue un argumento related_name a la definición de ''usuario''.

friends.contact: Accesor para el campo m2m ''usuarios'' choca con el campo relacionado User.contact_set ''. Agregue un argumento related_name a la definición de ''usuarios''.

Tienes razón, los nombres de las tablas ya son únicos. Analicé el modelo y el Modelo ''Contacto'' está en dos modelos de dos aplicaciones diferentes. Cuando comento uno de estos modelos, funciona bien.

Puede ser que el error esté allí porque ambas aplicaciones están en PYTHON_PATH y cuando otra aplicación define su modelo con el mismo nombre, se produce el conflicto.


El problema es que tanto Satchmo como Pinax tienen un modelo de contacto con una clave externa para el usuario. Django intenta agregar un atributo de relación inversa "contact_set" al Usuario para cada una de esas ForeignKeys, por lo que hay un conflicto.

La solución es agregar algo como related_name = "pinax_contact_set" como argumento para ForeignKey en el modelo de contacto de Pinax, o de manera similar en el modelo de Satchmo Contact. Eso requerirá editar la fuente directamente para uno u otro. Es posible que puedas encontrar una forma de hacerlo a través de monkeypatching, pero espero que sea complicado.