Hi, I'm a beginner in Django.
I try implement both sides acces to m2m relation and I have found this old 
article about it:
https://www.lasolution.be/blog/related-manytomanyfield-django-admin-site.html

Starting question:
1) is this still the good way in 2017/dj2.0? do we have something better 
for this goal?

If no, then it almost works for me,
but I cannot add the wrapper for [+] (for adding of new records) - that has 
been described in the end of the article.

I have this code:

class PersonForm(forms.ModelForm):
    ...
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        if self.instance.pk:
            # if this is not a new object, we load related teams
            self.initial['teams'] = self.instance.team_set.values_list('pk', 
flat=True)
            rel = ManyToManyRel(self, Team)
            self.fields['teams'].widget = 
RelatedFieldWidgetWrapper(self.fields['teams'].widget, rel, admin.site)


The last 2 lines should add the wrapper, but there is a problem.
I use a ManyToManyField without through=..

ManyToManyRel() creates the object (with default parameter through=None), 
however it fails while creating RelatedFieldWidgetWrapper with error
   'NoneType' object has no attribute '_meta'
in django 2.0 code django/db/models/fields/reverse_related.py, 
ManyToManyRel class:
   def get_related_field(self):
          opts = self.through._meta ...

where self.through is None.

So my main question:
2) Is this issue of the ManyToManyRel class, which allows the default 
parameter through=None, however fails in its get_related_field() when the 
default is used,
or, should I change my code...?

Best regards,
Mirek

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/84c19ed0-c52e-4398-b300-8450fd90922b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to