interconcetar modelos en un mismo proyecto

322 views
Skip to first unread message

wecbxxx

unread,
Aug 20, 2009, 1:50:57 PM8/20/09
to Django-es
hola tengo un problema con par de apps que estan en el mismo proyecto.
Una se encarga de el registro de usuarios y la otra necesita los datos
de los usuarios registrados.

Segun he estado buscando por ahy y revizando los modelos que vienen
con django y en la aplicacion que necesita la informacion creo en el
models.py una clase que trae a los campos y las tablas que voy a
necesitar de mi otro modelo en la applicacion donde esta guardada la
informacion de los usuarios.
algo asi como esto:

modelo #1
from django.db import models

class Usuarios(models.Model)
Nombres = models.CharField(max_length=50)
Apellidos = models.CharField(max_length=50)

modelo #2 en otra app del mismo proyecto

from django.db import models
from myproyecto.usuarios.models import Usuarios

class Postulante_cepre(models.Model):
def log_action(self, Usuario_id, change_message=''):
e = self.model(None, None, Usuarios_id, smart_unicode
(object_id), object_repr[:200], action_flag, change_message)
e.save()

no se si algo asi podria funcionar o es factible acer algo asi

Diego Andrés Sanabria Martin (diegueus9)

unread,
Aug 20, 2009, 5:03:27 PM8/20/09
to djan...@googlegroups.com
2009/8/20 wecbxxx <tolera...@gmail.com>:
si es posible y completamente normal.
pero así:

from tuproyecto.tuaplicacion.models import Usuarios

>
> >
>



--
Diego Andrés Sanabria
Ingeniería de Sistemas Universidad Distrital
about:me http://www.google.com/profiles/diegueus9
cel 3015290609

wilson coronado

unread,
Aug 20, 2009, 5:36:55 PM8/20/09
to djan...@googlegroups.com


El 20 de agosto de 2009 16:03, Diego Andrés Sanabria Martin (diegueus9) <dieg...@gmail.com> escribió:

2009/8/20 wecbxxx <tolera...@gmail.com>:


>si es posible y completamente normal.
>pero así:

>from tuproyecto.tuaplicacion.models import Usuarios
 
gracias por la respuesta mi duda es como llamo a los campos de el modelo de Usuarios para mi otra aplicacion
 por ejemplo:

>from tuproyecto.tuaplicacion.models import Usuarios
 
con esto yo en el models puedo decirle ala aplicacion que importe la clase Usuarios del modelo de mi aplicacion pero de ahy no entiendo como es que tengo se tiene que colocar para llamar por  ejemplo el campo  "Nombres" y "Apellidos". He visto en la documentacion que esto es pocible con el OneToOneField (http://docs.djangoproject.com/en/dev/ref/models/fields/#onetoonefield)
pero no encuentro algun ejemplo para estar seguro de la sintaxis.

class Postulante_cepre(models.Model)
:
>      def log_action(self, Usuario_id,  change_message=''):
>      e = self.model(None, None, Usuarios_id,  smart_unicode(object_id), object_repr[:200], action_flag, change_message)
>       e.save()

esto lo saque de los modelos que vienen con el django en contrib.admin.models tratando de ver si siguiendo esto puedo lograr concetar los modelos . La primera linea define una funcion que llama a la PK de la tabla Usuarios, pero no se que es lo que exactamente ace la segunda.

Segun tengo entendido lo que se ace es generar una clase que jale los campos del otro modelo usando una def que contenga el nombre de las tablas y sus PKs para despues empesar a acer las relaciones con esa tabla como base. es esto cierto o ahy se ace de otra forma?


gracias .

Diego Andrés Sanabria Martin (diegueus9)

unread,
Aug 20, 2009, 5:42:09 PM8/20/09
to djan...@googlegroups.com
Primero que todo ten presente que el models en general no es para
hacer operaciones logicas sino para definir los modelos.

Si lo que quieres es que tu postulante tenga un usario seria asl:
class Postulante(models.Model)
usuario = models.OneToOneField(Usuario)

pero tal vez quieras revisar la documentacion acerca de los profile.

2009/8/20 wilson coronado <tolera...@gmail.com>:
--
Diego Andrés Sanabria
Ingeniería de Sistemas Universidad Distrital
about:me http://www.google.com/profiles/diegueus9
cel 3015290609

Sent from Bogota, DC, Colombia

wilson coronado

unread,
Aug 20, 2009, 6:47:14 PM8/20/09
to djan...@googlegroups.com

Ouch .Dios y yo que me estaba llendo por otro lado gracias!


Reply all
Reply to author
Forward
0 new messages