私のアプリにフィードバックフォームがあります。フィードバックを送信するには、ユーザーがログインしている必要があります。ユーザーは、テキスト領域にフィードバックを入力するよう求められます。投稿時には、submit_byフィールドとsubmit_date(時間も含む)のようなフォームの作成時刻にユーザーの詳細を保存します。submit_dateとsubmitted_byをDjangoのフィードバックフォームに含めるにはどうすればよいですか?
私はauto-now_add=True
とauto_now
の使用に関する多くの議論を読んだことがありますが、このトピックに関する多くの意見があり、やや混乱しています。
私はモデルフォームを使用してユーザーからデータを入力しています。これは私の別のファイルの様子です:
# myapp/models.py
class Feedback(models.Model):
content = models.TextField(max_length=100)
submitted_by = models.ForeignKey(User)
submitted_date = models.DateTimeField() # what do add here in arguments ?
def __str__(self):
return self.content + " @ " + self.submitted_date
# myapp/forms.py
class FeedbackForm(ModelForm):
class Meta:
model = Feedback
fields = [ 'content' ]
# myapp/views.py
def addfeeback(request):
if request.method == "POST":
form = FeedbackForm(request.POST)
if form.is_valid():
form.save()
# Do I need to do something here ?
return redirect('home')
else:
form = FeedbackForm()
return render(request, 'myapp/addFeedback.html', { 'form': form})
# myapp/urls.py
url(r'^feedback/$', core_views.addfeeback , name='add-feedback'),
# myapp/templates/addFeedback.html
{% extends 'registration/base.html' %}
{% block title %} Feedback {% endblock %}
{% block content %}
<form method="post" >
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
{% endblock %}
私のコードに意図した通りに関連する変更を提案できれば幸いです。ありがとう。
または 'django.utils.timezone.now()'、理想的には;-) –