2012-12-17 94 views
0

我有一个模型叫Note如何将表单数据转换为模型?

class Note(models.Model): 
    name = models.CharField(max_length=200) 
    description = models.TextField() 


    def save(self, force_insert=False, force_update=False): 
     from notes.tasks import build_htaccess 
     super(Note, self).save(force_insert, force_update) 
     build_htaccess.delay(self.id) # celery tasks 

我有一个的ModelForm像这样:

from django import forms 

from notes.models import Note 


class AddNoteForm(forms.ModelForm): 
    password = forms.CharField(widget=forms.PasswordInput) 


    class Meta: 
     model = Note 

我不想给password值存储在数据库中,因为我重写保存方法通过subprocess创建一个htaccess密码,但我似乎无法访问clean_data表单来获取我的模型中的密码值进入保存覆盖。有关我如何做到这一点的任何建议?

+0

您必须将密码作为参数传递给视图中的保存功能。 – Jingo

回答

2

这对我提出的问题是,如果您没有将字段值存储在数据库中,为什么将它包含在模型中呢?

我不能在这里画出您的精确结局,但是我可能会在类似于您所描述的情况下做的事情是在模板中手动创建密码字段。然后,我可以使用的东西大致如下的行我认为中抓取场从request.POST数据值:

if request.method == 'POST': 
    [...] 
    if myPassHandler(request.POST['password']): 
     # password is valid 
     [...] 
    else: 
     # bad password 
     [...] 

myPassHandler返回TRUE或FALSE。希望这有助于一些。

相关问题