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 -> #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 -> #lanux.
_______________________________________________
General mailing list
[email protected]
http://listas.lanux.org.ar/cgi-bin/mailman/listinfo/general