第一次使用django,我也不确定以后会用上它,不过不管什么第一次都是有意义的。。虽然是跟着文档的First steps写的,还是决定记录一下,以记念这一刻。。
model.py:
from django.db import models
import datetime
# Create your models here.
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def was_published_today(self):
return self.pub_date.date() == datetime.datetime.today()
was_published_today.short_description = 'Published today?'
def __unicode__(self):
return self.question
class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()
def __unicode__(self):
return self.choice
view.py
# Create your views here.
#from django.template import Context, loader
#from django.http import HttpResponse, Http404
from django.core.context_processors import csrf
from django.shortcuts import render_to_response,get_object_or_404
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from mydjango.polls.models import Poll, Choice
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
#t = loader.get_template('index.html')
#c = Context({
# 'latest_poll_list':latest_poll_list,
#})
#return HttpResponse(t.render(c))
return render_to_response('index.html' ,
{'latest_poll_list': latest_poll_list})
def detail(request, poll_id):
#try:
# p = Poll.objects.get(pk=poll_id)
#except Poll.DoesNotExist:
# raise Http404
p = get_object_or_404(Poll, pk=poll_id)
c = {'poll': p}
c.update(csrf(request))
return render_to_response('detail.html', c)
def vote(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
try:
selected_choice = p.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
return render_to_response('detail.html',{
'poll': p,
'error_message': "You didn't select a choice.",
})
else:
selected_choice.votes += 1
selected_choice.save()
#return HttpResponseRedirect(reverse('mydjango.polls.views.results', args=(p.id,)))
return HttpResponseRedirect(reverse('poll_results', args=(p.id,)))
def results(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
return render_to_response('results.html', {'poll':p})