以下は、「editpost.html」を介してフォームをレンダリングする私の「ビュー」です。タイムスタンプ(日時フィールド)を更新してシステム時刻で編集したいのですが、ユーザーに表示したくありません。モデルフォーム定義のメタクラスで「hidden」キーワードを使用してみましたが、時刻が正しく更新されません。テンプレートで試してみましたが、うまくいきません。何か案は?
def editpost(request, postid):
blog = BlogPost.objects.get(pk=postid)
if request.method == 'POST':
form = BlogPostForm(request.POST, instance=blog)
blog = form.save()
return HttpResponseRedirect('/blog/%s' % str(postid))
else:
form = BlogPostForm(initial={'timestamp': datetime.now()}, instance=blog)
form.save(commit=False)
return render_to_response("editpost.html", {'form': form, 'postid': postid}, RequestContext(request))
editpost.html
{% block content %}
<form action="." method="post">{% csrf_token %}
{% for field in form %}
{% if field.label_tag != "Timestamp" %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }} {{ field }}
</div>
{% endif %}
{% endfor %}
<input type="submit" value="Save" />
</form>
{% endblock %}