Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/06/2012, 20:33
Avatar de oswalgogra
oswalgogra
 
Fecha de Ingreso: septiembre-2007
Ubicación: En algún lugar del territorio Colombiano
Mensajes: 140
Antigüedad: 16 años, 7 meses
Puntos: 5
Pregunta Problema cargando Modelos en Django

Buenas noches,

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:
<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>
El código que realiza la carga de la plantilla es el siguiente:

Código Python:
Ver original
  1. def cargar_panel(request):
  2.     usuario = User.objects.get(pk=request.user.id)
  3.     comercios = Comercio.objects.filter(usuario=usuario).order_by('-fecha_registro')[:5]
  4.     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
  1. 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
  1. 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!
__________________
Oswaldo: El que gobierna con el poder de Dios.