Bueno despues de leer bastante, pude hacer funcionar a medias.
Utilice la tabla farmsservers como relacion manytomany poniendo
class Farm(models.Model):
server = models.ManyToManyField(Server, through="FarmServer")

Hasta ahi todo bien, el problema es que puedo voy a la aplicacion no
mostraba nada. Investigando un poco agregue esta clase:

class FarmServerInline(admin.TabularInline):
    model = FarmServer
    extra = 1

class FarmAdmin(admin.ModelAdmin):
    filter_horizontal = ('server',)
    inlines = (FarmServerInline, )

El problema es que no me funciona el filter_horizontal.
Como puedo hacer para habilitarlo??
Saludos. Roldyx.


El 30 de junio de 2010 10:05, Rodrigo Roldan <[email protected]> escribió:

> Ska:
> Retomando el problema anterior, te hice caso y borre las relaciones en
> postgres. Para que Django genere las tablas que crea conveniente.
> Entonces entre a ADMIN y agregue una nueva Farm seleccionando del combo los
> Servers que necesitaba.
> Pero el problema ocurrio cuando quise grabar los datos. Aparecio lo
> siguiente.
> DatabaseError at /admin/inventario/farms/add/
>
> no existe la relación «farms_server_id»
> LINE 1: ..."."farms_id", "farms_server_id"."servers_id" FROM "farms_ser...
>
>
> Al final del trace que me arroja el python aparece esto:
> query
> u'SELECT "farms_server_id"."id", "farms_server_id"."farms_id",
> "farms_server_id"."servers_id" FROM "farms_server_id" WHERE
> "farms_server_id"."farms_id" = %s '
> Pero yo no tengo esa tabla en mi base. La deberia crear??
> Saludos. Roldyx.
>
>
> 2010/6/25 SKA // Juan Manuel Schillaci <[email protected]>
>
> On Fri, Jun 25, 2010 at 7:03 PM, Rodrigo Roldan <[email protected]> wrote:
>> > Este es mi modelo:
>> > class Servers(models.Model):
>> >     server_id = models.IntegerField(primary_key=True)
>> >     sn = models.TextField(verbose_name="Numero de Serie")
>> >     hostname = models.TextField()
>> >     def __str__(self):
>> >         return self.hostname
>> >     class Meta:
>> >         db_table = u'servers'
>> >         verbose_name_plural = "Servidores"
>> >         verbose_name = "Servidores"
>> >
>> >
>> > class Farms(models.Model):
>> >     farm_id = models.IntegerField(primary_key=True)
>> >     name = models.CharField(max_length=50)
>> >     server_id = models.ManyToManyField(Servers, through="FarmsServers")
>> >     class Meta:
>> >         db_table = u'farms'
>> >
>> >
>> > Cuando Elimine la clase FarmsServers me tiro el siguiente error:
>> >
>> > inventario.farms: 'server_id' specifies an m2m relation through model
>> > FarmsServers, which has not been installed
>> >
>>
>> Justamente , si ponés el through tenes que poner la clase que
>> borraste, sino pones el throug no.
>> El trough es para indicarle que el manytomany lo va a hacer con esa
>> clase, si vos no lo ponés genera la tabla(o asume la tabla con cierto
>> nombre).
>>
>>
>> Saludos
>> SKA
>> Lanux - Grupo de usuarios de GNU/Linux de Lanus
>> Visitanos en: http://www.lanux.org.ar
>>
>> Reglas de etiqueta para el posteo de mensajes a  la lista:
>> http://www.lanux.org.ar/?page_id=35
>>
>> Articulos y noticias por rss:
>> http://www.lanux.org.ar/?feed=rss2
>>
>> Lanux por irc:
>> irc.freenode.net -&gt; #lanux.
>> _______________________________________________
>> General mailing list
>> [email protected]
>> http://listas.lanux.org.ar/cgi-bin/mailman/listinfo/general
>>
>
>
Lanux - Grupo de usuarios de GNU/Linux de Lanus
Visitanos en: http://www.lanux.org.ar

Reglas de etiqueta para el posteo de mensajes a  la lista:
http://www.lanux.org.ar/?page_id=35

Articulos y noticias por rss:
http://www.lanux.org.ar/?feed=rss2 
            
Lanux por irc: 
irc.freenode.net -&gt; #lanux.
_______________________________________________
General mailing list
[email protected]
http://listas.lanux.org.ar/cgi-bin/mailman/listinfo/general

Responder a