Buenas Juan,

2014/1/21 Juan Asensio Sánchez <[email protected]>

> Hola
>
> Estoy empezando en esto del desarrollo con Django. Vengo de Java y esto es
> muy distinto... Bueno, tengo estas dos clases (bueno, es más grande, pero
> en resumen...):
>
>
> class Host(models.Model):
>     slug = models.SlugField()
>
> class HostIp(models.Model):
>     host = models.ForeignKey(Host)
>     ip = models.IPAddressField(unique=True)
>
> Lo primero, a partir de una IP como cadena de texto (no un objeto), ¿cómo
> puedo saber a qué host pertenece? He probado con
> Host.objects.get(hostip_set__ip="1.2.3.4") y variantes, pero no he dado con
> la tecla.
>

prueba sin el set,  Host.objects.get(hostip__ip="1.2.3.4")

>
> Por otro lado, ¿cómo puedo cambiar el nombre de las propiedades que son
> sets? Por ejemplo, en lugar de referenciar la lista de IPs de un host como
> "hostip_set", llamarlo "ips".
>

creo que buscas esto
https://docs.djangoproject.com/en/1.6/ref/models/fields/#django.db.models.ForeignKey.related_name



> Otro más, ¿cómo puedo crear un objeto directamente pasando la lista de
> IPs? He probado con
> Host.objects.create(hostip_set=[HostIp(ip="10.10.10.10")]), pero me da
> error de que el host no tiene id, supongo que porque intenta guardar las
> IPs antes que el host.
>

> Aparte, y relacionado, ¿cómo puedo forzar que la lista de IPs tenga al
> menos un valor?
>

Puedes usar post_save para añadir una al crear el host
https://docs.djangoproject.com/en/dev/ref/signals/#post-save


> Y por último, estoy creando hosts ahora mismo manualmente, de este modo:
>
> host = Host.objects.create(description="Host creado de forma automática el
> XXXXX")
> host.hostip_set.add(HostIp(ip=remote_ip))
> host.save()
>

Crea el host y luego puedes usar bulk_create
https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.bulk_create


>
> Si esto lo hago varias veces con la misma IP, no me da error, cuando en la
> definición del campo para la IP le he dicho que se único. ¿Alguien sabe por
> qué?
>

Esto se me escapa....

>
> Un saludo y muchas gracias por adelantado.
>
>
Un saludo.

> _______________________________________________
> Python-es mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
_______________________________________________
Python-es mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a