Foros del Web » Programando para Internet » Python »

No se me muestra la información de un campo ManyToMany

Estas en el tema de No se me muestra la información de un campo ManyToMany en el foro de Python en Foros del Web. Buenas tardes a todos. Estoy realizando el proyecto final de carrera en Python y Django y me ha surgido un problema para mostrar la información ...
  #1 (permalink)  
Antiguo 11/07/2012, 10:52
 
Fecha de Ingreso: mayo-2009
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
No se me muestra la información de un campo ManyToMany

Buenas tardes a todos.

Estoy realizando el proyecto final de carrera en Python y Django y me ha surgido un problema para mostrar la información que contiene el campo ManyToMany.

El problema es el siguiente, quiero mostrar el nombre de una carpeta que ha compartido un usuario con otro, Django me muestra todas las carpetas compartidas que tiene un usuario con otro pero no me muestra el nombre de la carpeta.

Aquí os dejo el código para que comprobéis haber que es lo que hago mal, porque he mirado en la doc de Django y no he podido encontrar la solución.

models.py

Código Python:
Ver original
  1. class Carpetas(models.Model):
  2.     idCarpeta = models.AutoField(primary_key=True)
  3.     Nombre = models.CharField(max_length=45)
  4.     Usuario= models.ForeignKey(User)
  5.     Padre = models.IntegerField(null=True)
  6.  
  7.     def __unicode__(self):
  8.         return self.Nombre
  9.  
  10. class Comparten(models.Model):
  11.     idUsuari1 = models.IntegerField()
  12.     idUsuari2 = models.ManyToManyField(User,related_name='receptor')
  13.     idCarpeta = models.ManyToManyField(Carpetes,related_name='carpeta')
  14.     lectura = models.BooleanField()
  15.     escriptura = models.BooleanField()

views.py

Código Python:
Ver original
  1. def usuari(request):
  2.     compartit=None
  3.     usuario = User.objects.get(username=request.user.username)
  4.     carpeta_usu= Carpetes.objects.get(Usuari=usuario.id, Nombre = usuario.username)
  5.     carpetas = Carpetas.objects.filter(Usuari=usuari.id, Padre = carpeta_usu.idCarpeta)
  6.         #Obtenemos las carpetas compartidas
  7.     compartidas = Comparten.objects.filter(idUsuari2 = usuari.id)
  8.     archivos = Archivos.objects.filter(Carpeta = carpeta_usu.idCarpeta)
  9.     return render_to_response('usuario.html', {'carpetas' : carpetas, 'id_carpeta': carpeta_usu.idCarpeta, 'archivos' : archivos, 'compartidas' : compartidas}, context_instance=RequestContext(request))

usuario.html

Os muestro la parte donde se tiene que mostrar el nombre de la carpeta

Código Python:
Ver original
  1. {% for compartida in compartidas %}
  2.     <tr>
  3.         <td>
  4.             <img src="{{ STATIC_URL }}img/folder_page.png"><a href='/carpeta/{{compartida.idCarpeta}}'>{{ compartida.idCarpeta.carpetas.nombre }}</a>
  5.         </td>
  6.         <td align="center">
  7.             {% if compartida.lectura %}
  8.             <img src="{{ STATIC_URL }}img/book_open.png">
  9.                 {% endif %}
  10.             {% if compartida.escriptura %}
  11.             <img src="{{ STATIC_URL }}img/edit.png">
  12.             {% endif%}
  13.         </td>
  14.     </tr>
  15. {% endfor %}
  #2 (permalink)  
Antiguo 12/07/2012, 07:35
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No se me muestra la información de un campo ManyToMany

Creo que compartida.idCarpeta.carpetas.nombre debería ser compartida.idCarpeta.nombre
  #3 (permalink)  
Antiguo 12/07/2012, 08:36
 
Fecha de Ingreso: mayo-2009
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: No se me muestra la información de un campo ManyToMany

Gracias por contestar

He probado lo que me has dicho y no me funciona seguire buscando haber si encuentro algo xDD

Etiquetas: django, gui, muestra, formulario, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:07.