2016-08-09 3 views
1

Ich versuche, ein Datum in einem Eingabefeld angezeigt werden, wie so:Python/Django Feld Datum in html input-Tag

<tr><td>Date of Birth</td><td><input type="date" name="DOB" value="{{m.dob|date:"d/m/Y"}}" required=True></td></tr> 

wo m.dob im Modell definiert als:

dob = models.DateField('Date of Birth', blank=True, null=True) 

Das HTML-Eingabe-Tag zeigt das Datum als TT/MM/JJJJ, wenn die Seite geladen wird, aber ich kann sehen, dass das Feld den zugewiesenen Wert genommen hat. Wie bekomme ich es richtig angezeigt?

Vielen Dank für Hilfe

Antwort

3

Das Problem ist value="{{m.dob|date:'d/m/Y'}}" die als value="{{m.dob|date:'Y-m-d'}}"

0

Sie default wie so verwenden können:

date = models.DateField(_("Date"), default="{{"+datetime.date.today+"}}") 
+0

Leider, ich habe erklärt, nicht gut meine Frage. Wie bekomme ich es in einer HTML-Datei angezeigt? '? – HenryM

+0

Wie wäre es damit? Ich nehme an, dass du das für js Manipulationszwecke tust? –

0

Geck, ist Ihre Frage nicht klar. Aber jetzt gehe ich davon aus, dass du neu in Django bist.

Ihr DB-Wert wird in der Vorlage nicht ausgefüllt. Um den Wert zu zeigen, müssen Sie zwei Schritte durchführen:

  • erste Abfrage des Modellobjekt
  • Pass es durch zusätzliches Kontextwörterbuch aus der Django-Ansicht.
from django.views.generic import View 
from django.shortcuts import render 

class Home(View): 
    template_name = "home.html" 
    def __init__(self, **kwargs): 
     pass 

    def get(self, request): 
     # Fetch your object here. ID or any other 
     myObj = MyModel.objects.get(id=1) 
     # Third argument is the conext dictionary 
     return render(request,self.template_name,{'myObj': myObj}) 

Jetzt verwenden nur, dass myObj in Ihrer Vorlage mit folgenden Syntax.

<tr><td>Date of Birth</td><td><input type="date" name="DOB" value="{{myObj.dob|date:"d/m/Y"}}" required=True></td></tr> 

Hier ist dieser Code in home.html.

+0

Ich mache das alles und trotzdem zeigt mein Eingabefeld nicht den Wert, den ich übergebe. Ich kann sehen, dass der Wert übergeben wird, denn wenn ich das Objekt überprüfe, kann ich sehen, dass chrome es im Hintergrund im richtigen Format hat, aber es wird nicht im HTML-Datumsfeld angezeigt – HenryM

0

angegeben werden muss Wenn Modelform verwenden und Weitergabe dieses Formular Objekt Vorlage, dann sollte es

value="{{m.dob.value|date:'Y-m-d'}}"