Hello guys,

I have a problem to deal with a field ManyToMany in Django. It is
the following:
When I try to access a list of relations that is my ManyToMany field
I get an error

"%ModelName% instance needs to have a primary key value before a many-
to-many relationship Can be used. "

I need to perform validation "before storing the record in the
database".
As you can see in the "view" code below, I used "save" in the
"ModelForm" with "commit = False"
so would build the ManyToMany relationship  in memory.

This did not work.

I've tried to find the solution on the internet but found nothing that
work.

Surely someone has been there.

Thanks to collaboration.

######################################
# Source
######################################
Note: The Model "Group" is the native Django admin

######################################
# Model
######################################

class Application (models.Model):

   . . .

   groups =
models.ManyToManyField (Group related_name = 'application')

   . . .

   eh_valida def (self):

       validating = True

       # ######################################
       # HAVE PROBLEMS HERE. The attribute "self.grupos" is not
filled. It should be a list.
       # Error: %ModelForm% instance
       # Needs to have a primary key value before the
       # Many-to-many relationship Can be used. "
       # ######################################

       meuConjuntoDeGrupos = set (self.grupos)

       # ######################################
       . . .

       return validating

######################################
# ModelForm
######################################
AplicacaoForm class (ModelForm):

   class Meta:
       model = Application


# View

def adiciona_aplicacao (request, idQuestionario):

   form = AplicacaoForm (request.POST)

   if request.method == 'POST':

       if form.is_valid ():

           form.save (commit = False)

           if form.instance.eh_valida ():

               form.save (commit = True)
               HttpResponseRedirect return (reverse (manager))
           #

   . . .

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to