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

Saludos. Roldyx.

El 25 de junio de 2010 18:45, SKA // Juan Manuel Schillaci <[email protected]
> escribió:

> On Fri, Jun 25, 2010 at 6:22 PM, Rodrigo Roldan <[email protected]> wrote:
> > Estoy utilizando django.
> > Tengo 3 tablas postgresql.
> >
> > Servers
> > servers_id
> > desc
> >
> > farms_servers
> > servers_id
> > farms_id
> >
> > farms
> > Farms_id
> > desc
> >
> > El tema es que no entiendo como llenar la tabla farms_servers.
> > Yo hago lo siguiente:
> >
> > class Farms(models.Model):
> >     farm_id = models.IntegerField(primary_key=True)
> >
> > class Servers(models.Model):
> >     server_id = models.IntegerField(primary_key=True)
> >     farm_id = models.ManyToManyField(Farms)
> >
> > class FarmsServers(models.Model):
> >     server = models.ForeignKey(Servers)
> >     farm = models.ForeignKey(Farms)
> >     class Meta:
> >         db_table = u'farms_servers'
> >
> > Pero me tira error
> >
> > Exception Value:
> >
>
> 1) No hace falta que declares la clase FarmServers lo hace solo, en tu
> caso django no sale que FarmServers es la tabla asociativa, la que
> busca es: server_farms por lo que veo.. para hacerlo funcionar de esa
> manera tenes que hacerlo asi[0]
> 2) Las clases van en singular.
> 3) Si lo que tenes es un modelo generado con inspectdb, podés cambiar
> el nombre de los campos para hacerlo mas "django friendly", ya que
> generalmente cuando hay una foreingkey django siempre agrega el _id al
> campo, al menos que le especifiques un nombre de campo alternativo.
>
> [0]
> class Servers(models.Model):
>    server_id = models.IntegerField(primary_key=True)
>     farm_id = models.ManyToManyField(Farms , through="FarmServer")
>
> 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