Re: Basic M2M Self Reference Through Question

2015-09-02 Thread monoBOT
to be able to diferentiate  both follower and following you should define
at least in one of those foreigkeys a related_name argument, so you can
call back from your user.

if you try to do it without related_name django will complain, showing you
the error message and addressing you to the sollution.


2015-09-02 21:46 GMT+01:00 James Schneider :

>
> On Sep 2, 2015 9:51 AM, "jeff newburn"  wrote:
> >
> > I apologize if this is basic and I am just missing something in the
> django docs.  The Django ORM allows you to do a self reference through
> another table.  I understand everything about this process EXCEPT how
> Django determines which of the foreign keys to use for each side of the M2M
> relationship.
> >
> > class MyUser(...):
> > connections = models.ManyToManyField('self', through=Relationship,
> symmetrical=False)
> >
> > class Relationship(...):
> > follower = models.ForeignKey(MyUser)
> > following = models.ForeignKey(MyUser)
> >
> > So in the psuedocode example above how does Django ORM know which of the
> 2 foreign key fields to connect to?  Does it just assume the first field is
> the one to use?  Thanks for any help on this.
> >
>
> When you have multiple references to the same model, you have to do a bit
> of extra work to tell Django how you want things to line up. I think what
> you need to do is specify the 'through_fields' on the M2M, and set
> appropriate 'related_name' arguments for the FK's.
>
>
> https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.ManyToManyField.through_fields
>
> -James
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CA%2Be%2BciWUHERQxWxOzraYknnZSdpPU654vu4DRVQasG8Fqf9Hfg%40mail.gmail.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
*monoBOT*
Visite mi sitio(Visit my site): monobotsoft.es/blog/

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2BxOsGCibEcF7P%2BCjz0uiW5_6haDMCNxVok_%3Dgdh1pmU58mhZg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: Basic M2M Self Reference Through Question

2015-09-02 Thread James Schneider
On Sep 2, 2015 9:51 AM, "jeff newburn"  wrote:
>
> I apologize if this is basic and I am just missing something in the
django docs.  The Django ORM allows you to do a self reference through
another table.  I understand everything about this process EXCEPT how
Django determines which of the foreign keys to use for each side of the M2M
relationship.
>
> class MyUser(...):
> connections = models.ManyToManyField('self', through=Relationship,
symmetrical=False)
>
> class Relationship(...):
> follower = models.ForeignKey(MyUser)
> following = models.ForeignKey(MyUser)
>
> So in the psuedocode example above how does Django ORM know which of the
2 foreign key fields to connect to?  Does it just assume the first field is
the one to use?  Thanks for any help on this.
>

When you have multiple references to the same model, you have to do a bit
of extra work to tell Django how you want things to line up. I think what
you need to do is specify the 'through_fields' on the M2M, and set
appropriate 'related_name' arguments for the FK's.

https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.ManyToManyField.through_fields

-James

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2Be%2BciWUHERQxWxOzraYknnZSdpPU654vu4DRVQasG8Fqf9Hfg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Basic M2M Self Reference Through Question

2015-09-02 Thread jeff newburn
I apologize if this is basic and I am just missing something in the django 
docs.  The Django ORM allows you to do a self reference through another 
table.  I understand everything about this process EXCEPT how Django 
determines which of the foreign keys to use for each side of the M2M 
relationship.

class MyUser(...):
connections = models.ManyToManyField('self', through=Relationship, 
symmetrical=False)

class Relationship(...):
follower = models.ForeignKey(MyUser)
following = models.ForeignKey(MyUser)

So in the psuedocode example above how does Django ORM know which of the 2 
foreign key fields to connect to?  Does it just assume the first field is 
the one to use?  Thanks for any help on this.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/ce496175-fdd6-4a7b-9e7c-e306bbd527c4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.