2010-12-06 29 views
0

IPDB調試:Django的:上的ModelForm保存另一類返回對象

ipdb> form_class 
<class 'myproject.apps.usersites.forms.IndividualSiteHomeForm'> 
ipdb> form = form_class(request.POST) 
ipdb> form 
<myproject.apps.usersites.forms.IndividualSiteHomeForm object at 0x021A81F0> 
ipdb> var = form.save(commit= False) 
ipdb> var 
<IndividualProfile: user1> 
ipdb> request.POST 
<QueryDict: {u'csrfmiddlewaretoken': [u'208ff2a5a78bd5c2ba9452b365b59b6d'], u'ho 
me_content': [u'Some contents']}> 

我綁定它來發布數據後,當保存IndividualSiteHomeForm。 爲什麼它返回一個IndividualProfile對象?

參考: 1>模型

class IndividualSite(SiteBase): 
individual = models.ForeignKey(IndividualProfile, unique=True, verbose_name = _("Professional")) 
logo = models.ImageField(upload_to="sites/logos/",verbose_name=_("logo"))  
home_content = models.TextField(_("Home contents"), null=True, blank=False, 
           help_text = "This text will appear on your web site home. Do not use HTML here.")  

def __unicode__(self): 
    return self.individual.name 

2>的ModelForm

class IndividualSiteHomeForm(ModelForm): 
class Meta: 
    model = IndividualSite 
    exclude = ('individual','user','logo') 

感謝您的時間。

編輯:爲了確認VAR確實IndividualProfile:

ipdb> var 
<IndividualProfile: user1> 
ipdb> var.home_content 
*** AttributeError: 'IndividualProfile' object has no attribute 'home_content' 
ipdb> var.__class__ 
<class 'profiles.models.IndividualProfile'> 
ipdb> 

回答

0

,我不認爲它返回的IndividualProfile一個實例。正如你所期望的那樣,我認爲它返回了一個IndividualSite的實例,但是當你從shell中重新編譯它時,它使用IndividualSite的__unicode__方法 - 它返回ForeignKey的值,這是一個IndividualProfile。

+0

我認爲這是IndividualProfile對象..請參閱編輯。 – trappedIntoCode 2010-12-06 22:57:50

相關問題