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/
