2010-10-28 17 views
1

Je suis un Django débutant. J'ai trouvé ce Django snippet pour afficher un simple calendrier sur ma page web. La fonction nécessaire 3 paramètres que l'on peut fournir dans le modèle comme suit:Django: indiquez le numéro du mois et de l'année en tant que paramètre dans un gabarit à utiliser dans le gabarit de gabarit

{% load calendar_tag %} 
<div> 
<div>Calendar: </div> 
{% get_calendar for 10 2010 as calendar %} 
<table> 
    <tr> 
     <th>Mon</th> 
     <th>Tue</th> 
     <th>Wed</th> 
     <th>Thu</th> 
     <th>Fri</th> 
     <th>Sat</th> 
     <th>Sun</th> 
    </tr> 
    {% for week in calendar %} 
    <tr> 
     {% for day in week %} 
     <td>{{ day.day }}</td> 
     {% endfor %} 
    </tr> 
    {% endfor %} 
</table> 
</div> 

Comment puis-je fournir le numéro du mois et l'année de façon dynamique à partir du serveur, par exemple comme:

{% now "jS F Y H:i" %} 

Il n'est pas possible d'avoir une étiquette de bloc dans une étiquette de bloc. J'apprécierais d'utiliser ce calendrier simple. Merci d'avance.

Répondre

1

Je présume que vous passerait les params dans le rendu du modèle dans votre point de vue, comme ceci:

def yourview(request, month, year): 
    return render_to_string("template.html", { 
     "month": month, 
     "year": year, 
    }) 

puis changer get_calendar en conséquence:

{% get_calendar for month year as calendar %} 
+0

Nous vous remercions de votre aide. – saeed

1

Je veux présenter, comment J'ai corrigé mon problème, pour d'autres qui pourraient avoir des problèmes similaires:

Avec l'aide de l'utilisateur fish2000, j'ai géré ma question comme ceci:

Mon point de vue défini:

# Create your views here. 
from django.shortcuts import render_to_response 
from django.template import RequestContext 

import datetime 

def calender_view(request, template_name="custom_template_calender_tag.html"): 
    d = datetime.date.today() 
    recent_month = d.month 
    recent_year = d.year 
    return render_to_response(template_name, locals(),context_instance=RequestContext(request)) 

puis changé get_calendar de

{% get_calendar for 10 2010 as calendar %} 

à

{% get_calendar for recent_month recent_year as calendar %} 

à fournir et à rendre le mois dernier et l'année dynamique dans mon modèle custom_template_calender_tag.html.