2013-02-20 37 views
1

從模型中的字段我想所謂的「some_attribute」表單字段的值。我嘗試這與self.Meta.model.some_attribute如何獲得在forms.ModelForm

class TestModel(models.Model): 
    some_attribute = models.CharField(max_length=255) 


class TestForm(forms.ModelForm): 

    def save(self, *args, **kwargs): 
     super(TestForm, self).save(*args, **kwargs) 
     send_mail('topic', self.Meta.model.some_attribute, '[email protected]', ['[email protected]'], 
       fail_silently=False) 

    class Meta: 
     model = TestModel 

這將導致一個錯誤: 'EnrollInEventForm' 對象有沒有屬性 'some_attribute'。 我該怎麼做?

+1

你是否抓住了'some_attribute'的拼寫錯誤? – Cole 2013-02-20 16:21:07

+0

對不起,糾正它。 – Mathias 2013-02-20 16:29:01

回答

1

我偶爾會從視圖內的窗體剝離特定值。我通過使用form.data字典來做到這一點。在你的情況下,其中一個密鑰應該是some_attribute。這種方法可能有幫助。

+1

是的,你說得對,我不得不用'self.data ['some_attribute']''替換'self.Meta.model.some_attribute'' – Mathias 2013-02-20 16:38:58

1

這可能是some_attribtue在模型類,叔拼錯和u交換。

+0

抱歉,糾正了它。這不是問題的難點,因爲這只是示例代碼。我在我的實際代碼中有其他名字。 – Mathias 2013-02-20 16:30:10