我正在學習一些Django,現在我對Forms有困難。我想要做的是創建一個讓人們在頁面上留言的表單,該表單將顯示在同一頁面中(就像博客評論系統一樣)。我創建一個類,像這樣的ModelForm,文檔以下如何使用Django 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>
這正確生成的表單頁面,但是當我點擊提交按鈕時,它不會保存數據庫中的數據,現在我無法弄清楚該怎麼做。嘗試了一些意見,但沒有奏效。
有人可以幫我嗎?非常感謝你。
你讀過基本教程嗎?這也將有助於https://docs.djangoproject.com/en/dev/topics/forms/#working-with-forms – Rohan 2013-05-09 10:44:44
不需要使用modelform_factory - 只需導入RecadoForm並使用它。 – 2013-05-09 10:51:21
我沒有閱讀文檔,但我試圖把應該在另一個視圖中處理髮布數據的代碼(不知道爲什麼我這麼做) – fgalvao 2013-05-09 23:47:48