python - 如何使用 Django ModelForm 将数据提交到数据库?

标签 python django

我正在学习一些 Django,但现在我在使用 Forms 时遇到了困难。我想做的是创建一个表单,让人们在页面上留言,该表单将显示在同一页面中(就像博客评论系统一样)。我按照文档创建了一个类和这样的 ModelForm

class Recado(models.Model):
    recado = models.TextField()
    data = models.DateTimeField(auto_now_add=True)
    nome = models.CharField(max_length=100)
    email = models.EmailField(max_length=100)

    def __unicode__(self):
        return self.recado

class RecadoForm(ModelForm):
    class Meta:
        model = Recado
        exclude = ('data',)

那么这是我的观点:

def index(request):
    RecadoForm = modelform_factory(Recado, exclude=('data'))
    form = RecadoForm()
    lista_recados = Recado.objects.order_by('-data')
    template = loader.get_template('recados/index.html')
    context = Context({'lista_recados': lista_recados,})
    return render_to_response("recados/index.html", { "form": form,}, context_instance=RequestContext(request))

和模板:

<div class="conteudo-site conteudo-recados">
    <form method="post" action="salvar_recado">
        {% csrf_token %}            
        {{ form.as_p }}
        <br /><input class="button" type="submit" value="Deixar Recado" />
    </form>
    {% if lista_recados %}
        {% for recado in lista_recados %}
            <p>{{ recado.nome }}</p>
            <p>{{ recado.data }}</p>
            <p>{{ recado.recado }}</p>
            <br />
        {% endfor %}
    {% else %}
        <p>Ainda não existem recados. Deixe o seu :)</p>
    {% endif %}
</div>

这会在页面上正确生成表单,但是当我单击提交按钮时它不会将数据保存到数据库中,现在我不知道该怎么做。尝试了一些有观点的东西,但没有任何效果。

有人可以帮帮我吗?非常感谢。

最佳答案

您需要在 View 中添加 POST 条件,验证表单然后保存: https://docs.djangoproject.com/en/dev/topics/forms/#using-a-form-in-a-view

关于python - 如何使用 Django ModelForm 将数据提交到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16459869/

相关文章:

django - 管理员中的 list_filter

python - 使用 Python 从 CSV 文件中提取信息/清理数据

python - 如何在 python 中区分 `0` 和 `False`

python - Django Response 总是 Chunked with text/html 无法设置 Content-Length

python - 'NoneType' 对象没有属性 'unique' 但我没有使用 'unique' 属性

python - 使用 get_absolute_url() 时出现 NoReverseMatch 错误

Django 管理员登录特定网址

python - tensorflow 2中单个矩阵的按位运算

python - 有没有办法在压缩视频并使用 ffmpeg 提取其帧时计算输出帧尺寸

python - 在这种情况下,当变量被 self 覆盖时会发生什么?