2016-04-21 11 views
0

jeder versuche ich django ModelForm mit jquery datepicker zu rendern ,, weisst du jetzt wie es geht?rendering django ModelForm mit jquery datepicker

models.py

.... 
class ProductsTbl(models.Model): 
    model_number = models.CharField(max_length=255, blank=True, null=True) 
    name = models.CharField(max_length=255, blank=True, null=True) 
    material = models.TextField(blank=True, null=True) 
    release = models.DateTimeField(blank=True, null=True) 
    ...  

forms.py

from django import forms 
from django.forms import ModelForm 
from .models import ProductsTbl,Upload 


class ProductsTblForm(ModelForm): 
    class Meta: 
     model = ProductsTbl 
     fields = ('model_number','name','feature', 'material','release',) 

edit_thing.html

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
    <script src="//code.jquery.com/jquery-1.10.2.js"></script> 
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
    <link rel="stylesheet" href="/resources/demos/style.css"> 
    <script> 
    $(function() { 
    $("#datepicker").datepicker({ dateFormat: 'yy-mm-dd' }); 


    }); 
    </script> 
{% extends 'base.html' %} {% block title %} 
Edit {{ thing.name }} - {{ block.super }} {% endblock title %} 
{% block content %} 
<h1>Edit "{{ thing.name }}"</h1> 
<form role="form" action="" method="post"> 
{% csrf_token %} 
{{ form.as_p }} 
<br> 
<button type="submit">Submit</button> 
<a href="{% url 'edit_thing_uploads' slug=thing.slug %}"> Edit images</a> 
</form> 
{% endblock %} 

Ich glaube, ich habe etwas in forms.py tun ,,, ließ die

Mitteilung

datepicker Funktionen hat ,, according to the link here

jetzt nur eine einfache html

enter image description here

+0

Was funktioniert nicht? – Sayse

+0

die Freigabe Eingabe Text Teil brauchen datepicker ,, Ich denke, etwas in forms.py ,, tun müssen, jetzt einfach nur HTML kein Datepicker ,,,. –

+0

genau wie der Link hier http://Stackoverflow.com/a/16356818/5678590 aber ich weiß nicht, wie es in meinem forms.py –

Antwort

2

In der folgenden Codezeile bezieht sich auf die ID des Elements, auf das Sie den Datepicker anwenden möchten, auf den in diesem Fall nicht datepicker zutrifft, da dies die Standard-ID ist, die django bereitstellt, ich vermute, das sollte es sein so etwas wie #id_release aber Sie werden das Eingangselement prüfen müssen, um herauszufinden, was es

$("#datepicker").datepicker({ dateFormat: 'yy-mm-dd' }); 

Django sein sollte erstellt die IDs für Felder standardmäßig wegen auto_id

das id-Attribut-Werte generiert werden indem ID_ den Namen der Formularfelder vorangestellt wird. Dieses Verhalten ist jedoch konfigurierbar, wenn Sie die ID-Konvention ändern oder HTML-ID-Attribute und -Tags vollständig entfernen möchten.

+0

in der Ebene HTML zu tun Ich muss ,,, aber django-form rendert nur {{form.as_p}} in html, also denke ich, dass ich etwas Code in forms.py hinzufügen muss –

+0

@CcL - Ich habe einen Link zu der hinzugefügt doc, das erklärt, wie django die IDs erstellt, müssen Sie überhaupt nicht im plain html schreiben, Sie müssen nur Ihr Skript auf das richtige Element anwenden. – Sayse

+1

danke, nachdem ich $ ("# datepicker") zu $ ​​("#id_release") in edit_thing.html geändert habe, funktioniert es –