2014-04-17 168 views
0

我在Django 1.6中有一个简单的问答应用程序,并且我无法在控制台中打印question_id。提交的答案印刷得很好,但没有运气得到question_id。它不会抛出任何错误Django不打印_id到控制台

这是我的models.py。

from django.db import models 
from django.contrib.auth.models import User 
# Create your models here. 

class Question(models.Model): 
    user = models.ForeignKey(User) 
    question = models.CharField(max_length=120) 
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False) 
    update = models.DateTimeField(auto_now_add=False, auto_now=True) 

    def __unicode__(self): 
     return self.question 

class Answer(models.Model): 
    question = models.ForeignKey(Question) 
    answer = models.CharField(max_length=120) 
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False) 
    update = models.DateTimeField(auto_now_add=False, auto_now=True) 

    def __unicode__(self): 
     return self.answer 

class UserAnswer(models.Model): 
    user = models.ForeignKey(User) 
    question = models.ForeignKey(Question) 
    answer = models.ForeignKey(Answer, null=True, blank=True) 
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False) 
    update = models.DateTimeField(auto_now_add=False, auto_now=True) 

    def __unicode__(self): 
     return self.answer.answer 

这里是我的views.py

from django.contrib import messages 
from django.contrib.auth.models import User 
from django.shortcuts import render_to_response, RequestContext, Http404, HttpResponseRedirect 

from .models import Question, Answer, UserAnswer 

def all_questions(request): 
    questions = Question.objects.all() 

    if request.method == 'POST': 
     print request.POST['question_id'] 
     print request.POST['answer'] 
    return render_to_response('questions/all.html', locals(), context_instance=RequestContext(request)) 

,这里是我的模板。

{% extends 'base.html' %} 

{% block content %} 
<div class='row'> 

    {% for question in questions %}  
     {{ question }}<br/> 
     <form method='POST' action=''>{% csrf_token %} 
     <input type='hidden' vlaue='{{ question.id }}' name='question_id'/> 
      {% for ans in question.answer_set.all %} 
      <input type='radio' value='{{ ans }}' name='answer'>{{ ans }} <br/> 
      {% endfor %} 
      <input type='submit' value='Submit'> 
     </form> 
    {% endfor %} 

</div> 

{% endblock %} 

回答

1

你的问题很可能是一个错字:

{% extends 'base.html' %} 

{% block content %} 
<div class='row'> 

    {% for question in questions %}  
     {{ question }}<br/> 
     <form method='POST' action=''>{% csrf_token %} 
     <input type='hidden' **vlaue**='{{ question.id }}' name='question_id'/> 
      {% for ans in question.answer_set.all %} 
      <input type='radio' value='{{ ans }}' name='answer'>{{ ans }} <br/> 
      {% endfor %} 
      <input type='submit' value='Submit'> 
     </form> 
    {% endfor %} 

</div> 

{% endblock %} 

它应该是:

{% extends 'base.html' %} 

{% block content %} 
<div class='row'> 

    {% for question in questions %}  
     {{ question }}<br/> 
     <form method='POST' action=''>{% csrf_token %} 
     <input type='hidden' value='{{ question.id }}' name='question_id'/> 
      {% for ans in question.answer_set.all %} 
      <input type='radio' value='{{ ans }}' name='answer'>{{ ans }} <br/> 
      {% endfor %} 
      <input type='submit' value='Submit'> 
     </form> 
    {% endfor %} 

</div> 

{% endblock %} 
+1

图。如果我坚持了几个小时。我宁愿Django抛出10个错误,也不愿意在我的模板中输入错误! – Shaun

+1

好主意..我现在开始我的清单。 – Shaun

+0

@needaname:请参阅[如何根据CC:WIKI?删除我的帖子名称](http://meta.stackexchange.com/q/96732)和[如何删除我的帐户?]( http://meta.stackexchange.com/q/5999)。当您发布内容时,您将内容授权给Stack Exchange;愤怒 - 相当多的删除通常会被还原。 –