【问题标题】:How can I get form data into a model?如何将表单数据导入模型?
【发布时间】:2012-12-17 21:59:26
【问题描述】:

我有一个模型叫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 密码,但我似乎无法访问 clean_data 表单以获取密码值我的模型进入保存覆盖。关于我如何做到这一点的任何建议?

【问题讨论】:

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

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-08-30
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2016-03-03
    • 2011-04-29
    • 2016-04-04
    相关资源
    最近更新 更多