如何将表单数据导入模型?

时间:2012-12-17 21:59:26

标签: django django-models django-forms django-views

我有一个名为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

我有一个像这样的模型形式:

from django import forms

from notes.models import Note


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


    class Meta:
        model = Note

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

1 个答案:

答案 0 :(得分:2)

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

我无法在这里描绘您的精确游戏结果,但在类似于您所描述的情况下我可能会做的是在模板中手动创建密码字段。然后,我可以使用以下内容中的某些内容从我视图中的request.POST数据中获取字段的值:

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

myPassHandler返回True或False。希望这会有所帮助。