Ich habe ein Feedback-Formular in meiner App. Ein Benutzer muss angemeldet sein, um eine Rückmeldung zu senden. Ein Benutzer wird gebeten, eine Rückmeldung in den Textbereich einzugeben. Bei der Übermittlung möchte ich die Benutzerdetails im Feld submitted_by und dem Zeitpunkt der Erstellung des Formulars als submitted_date (das auch Zeit enthält) speichern.Wie können Sie submitted_date und submitted_by in einem Feedback-Formular in Django einbeziehen?
Ich habe viele Diskussionen über die Verwendung von auto-now_add=True
und auto_now
gelesen, aber es gibt viele Meinungen zu diesem Thema und ein wenig verwirrend.
Ich benutze Model-Form, um Daten vom Benutzer einzugeben. Dies ist, wie meine andere Datei wie folgt aussieht:
# 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 %}
Es wird sehr geschätzt, wenn Sie relevante Änderungen in meinen Code vorschlagen können, wie beabsichtigt zu tun. Vielen Dank.
Oder 'django.utils.timezone.now()', idealerweise ;-) –