I have two model
class Friend(models.Model):
       me = models.ForeignKey(User)
       friend = models.ForeignKey(User)
       remark = models.CharField(max_length=15)

      def __unicode__(self):
            return self.remark

class Message(models.Model):
       from_user = models.ForeignKey(User)
       to_user = models.ForeignKey(User)
       ...

I make a form for Message
class MessageForm(ModelForm):
        class Meta:
              model = Message

but when i display the form in html, i hope i display to_user's choice
list just by 'remark' ( in Friend model)

and I override MessageForm 's __init__ method like follow:
class MessageForm(ModelForm):
        class Meta:
              model = Message
        def __init__(self,*args,**kwargs):
              super(MessageForm, self).__init__(*args,**kwargs)
              init = kwargs.get('initial')
              if init:
                  if 'from_user' in init:
                       me = init['from_user']
                       self.fields['to_user'].queryset =
Friend.objects.filter(me=me)

well when  the data post, the form.is_valid() raise error :  Cannot
assign "<Friend: 小燕>": "Message.to_user" must be a "User" instance.

so i want to change self.fields['to_user'] 's value  before is_valid()
is call like:
def is_valid(self):
     # do something  to fix the problem
     super(MessageForm, self).is_valid()

but I don't know how to fix it
any suggestion is welcome
thks
     I don't know how to do it ,

-- 
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