在django中渲染HTMLCalendar

时间:2015-04-16 13:54:19

标签: python django calendar

我试图让日历here正常工作 - 但我无法将任何内容返回到None

之外的index.html文件中

成为django的新手我可能会犯一个基本的错误。我的观点中有以下内容(它确实是链接中示例代码的完整副本)

...
 55     my_next_month = my_month + 1
 56     if my_next_month == 13:
 57         my_next_year = my_year + 1
 58         my_next_month = 1
 59     my_year_after_this = my_year + 1
 60     my_year_before_this = my_year - 1
 61     return render(request, 'homepage/index.html', {'events_list': my_events,
 62                                                         'month': my_month,
 63                                                         'month_name': named_month(my_month),
 64                                                         'year': my_year,
 65                                                         'previous_month': my_previous_month,
 66                                                         'previous_month_name': named_month(my_previous_month),
 67                                                         'previous_year': my_previous_year,
 68                                                         'next_month': my_next_month,
 69                                                         'next_month_name': named_month(my_next_month),
 70                                                         'next_year': my_next_year,
 71                                                         'year_before_this': my_year_before_this,
 72                                                         'year_after_this': my_year_after_this
 73     })
 74 
 75 
 76 def index(request):
 77         users = User.objects.all()
 78         return render(request, 'homepage/index.html', {'users':users})

我的观点文件中是否可以包含2 return render个?我想在页面上呈现两个对象(日历和简单的用户列表)。用户工作正常。

在我的urls.py文件中,我有:

  4 urlpatterns = patterns('',
  5                 url(r'^$', views.index),
  6                 url(r'^$', views.calendar, name='calendar')
  7                 )

有什么想法吗?

非常感谢,Arthur

编辑:这是我的模板代码。仅供参考 - 变量都可以正常工作,但日历返回无

  1 {% load staticfiles %}
  2 
  3 <!--The first few lines here pull in the dropdown banner--!>
  4 <title>Dashboard</title>
  5 <link rel="stylesheet" type="text/css" href="{% static 'css/banner.css' %}" />
  6 <script type="text/javascript" src="{% static 'javascript/banner.js' %}"></script>
  7 <script src="{% static 'javascript/jquery.js' %}"></script>
  8         <script>
  9         $(function(){
 10                 $("#includedContent").load("{% static 'html/banner.html' %}");
 11                 });
 12         </script>
 13 
 14         <div id="includedContent"></div>
 15         <!--End of dropdown barrier--!>
 16         <br>
 17         <br>
 18 
 19 {% if users %}
 20         {% for user in users %}
 21         <span>{{ user.first_name }} {{ user.last_name }}</span><br>
 22         {% endfor %}
 23 {% else %}
 24         <b>no users</b>
 25 {% endif %}
 26 
 27 {% load event_tags %}
 28 
 29 <div id="calendar">
 30             {% event_calendar year month event_list %}
 31     </div>
 32 
 33     {% event_calendar year month event_list %}
 34     <br>
 35     {% for x in users %}
 36     {{ x }}
 37     {% endfor %}
 38     <br>
 39     {{ year }}
 40     {{ month }}
 41     <br>
 42     {{ events_list }}

1 个答案:

答案 0 :(得分:0)

如果您希望它们位于同一页面上,并直接在页面上呈现,而不是通过使用javascript的某个ajax调用,则必须在同一视图中将它们全部返回。

 def index(request):
      users = User.objects.all()
      # Code for retrieving your events etc.
      return render(request, 'homepage/index.html', {'users':users, 'events_list':my_events, .....})

目前,当您访问基本网址时,网址图片中的第一个匹配将是您收到的网址,这就是用户工作的原因,而不是日历。

您可以修改您的网址

urlpatterns = patterns('',
               url(r'^$', views.index),
               url(r'^calendar/$', views.calendar, name='calendar')
               )

并访问您的baseurl.com/calendar/,看看它是否有效。你不能拥有两个具有相同模式的网址,等等。