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

passwordsave メソッドをオーバーライドして htaccess パスワードを作成しているため、データベースに値を保存したくありませんsubprocessが、フォームcleaned_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 に答える