Soy principiante en Python/Django, y actualmente estoy desarrollando un proyecto usando una base de datos Postgresql, me ha parecido muy buen Lenguaje/Framework para el desarrollo web.
Hoy decidí configurar Django para que se pueda conectar con bases de datos de MongoDB , instalé los componentes necesarios, pero todavía no he podido probar que funcione correctamente.
Luego de un rato quéría probar si con las configuraciones que estaba haciendo no se desestabilizaría la instalación inicial (sin las librerías de mongo-engine, etc.), pero desafortunadamente me encontré con el siguiente error al momento de cargar una lista de modelos de la base de datos:
Cita:
Caught AttributeError while rendering: 'AutoField' object has no attribute 'related_db_type'
El error hace referencia a la línea 10 de la siguiente plantilla:
Cita:
El código que realiza la carga de la plantilla es el siguiente:<script src="/static/js/jquery-1.7.2.min.js" ></script>
2 <script>
3 $(document).ready(function(){
4
5 });
6 </script>
7 <h3>Panel de usuario</h3>
8 <a href="/panel/comercios/">Comercios</a>
9 <hr />
10 {% if comercios %}
11 <ul>
12 {% for comercio in comercios %}
13 <li>{{ comercio.nombre }} <a href="/nueva-oferta/{{comercio.id}}">Oferta+</a></li>
14 {% if comercio.oferta_set.all %}
15 {% for oferta in comercio.oferta_set.all %}
16 {{oferta.titulo}} <strong>{{ oferta.precio_oferta }}</strong><br/>
17 {% endfor %}
18 {% endif %}
19 {% endfor %}
20 </ul>
2 <script>
3 $(document).ready(function(){
4
5 });
6 </script>
7 <h3>Panel de usuario</h3>
8 <a href="/panel/comercios/">Comercios</a>
9 <hr />
10 {% if comercios %}
11 <ul>
12 {% for comercio in comercios %}
13 <li>{{ comercio.nombre }} <a href="/nueva-oferta/{{comercio.id}}">Oferta+</a></li>
14 {% if comercio.oferta_set.all %}
15 {% for oferta in comercio.oferta_set.all %}
16 {{oferta.titulo}} <strong>{{ oferta.precio_oferta }}</strong><br/>
17 {% endfor %}
18 {% endif %}
19 {% endfor %}
20 </ul>
Código Python:
Ver original
def cargar_panel(request): usuario = User.objects.get(pk=request.user.id) comercios = Comercio.objects.filter(usuario=usuario).order_by('-fecha_registro')[:5] return render_to_string('usuarios/panel.html',{'username': usuario.username, 'comercios': comercios}, context_instance=RequestContext(request))
Y pienso que el error está al momento de cargar una colección de Comercios por medio de la relación con el modelo Usuario (Llave foránea), ya que al buscarla por un tipo de atributo que no sea llave foránea, se cargan sin problemas:
Código Python:
Ver original
comercios = Comercio.objects.filter(usuario=usuario).order_by('-fecha_registro')[:5]
En la documentación de Django he visto que el atributo ID se crea automáticamente para todos los modelos, y es un atributo auto-incremental (llave primaria), o sea que no es necesario agregar la siguiente línea en el modelo User:
Código Python:
Ver original
id = models.AutoField(primary_key=True)
Ya llevo mucho rato buscando la solución y no la he encontrado por ninguna parte...
A alguien ya le ha ocurrido???
Será que dañé la instalación de Django???
Agradezco cualquier ayuda
Hasta pronto!