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

我有一个像这样的模型:

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 方法以通过创建 htaccess 密码,subprocess但我似乎无法访问 clean_data 表单以将模型中的密码值放入保存覆盖。关于我如何做到这一点的任何建议?

4

1 回答 1

2

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

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

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

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

于 2012-12-17T23:07:24.177 回答