1

IM形式建立一个小的调查程序,我需要显示在一个页面及其相应的回答每一个答案,因此IM与ListView控件做和分页由1保存在数据库列表视图,从与Django的模板

class TriviaView(ListView): 
    model = Preguntas 
    paginate_by = 1 
    template_name = 'trivias.html' 

很明显,每个答案都必须将其保存在数据库中,但这里是我失去的地方,我不知道如何在数据库中保存每个答案的用户答复。

模板:

<form action="." method="post">{% csrf_token %} 
    <p>{% for pregunta in object_list %} {{pregunta.pregunta}}</p> 
    {% for respuesta in pregunta.respuestas_set.all %} 
    {% if page_obj.has_next %} 
    <a href="?page={{page_obj.next_page_number}}"><button type="button">{{respuesta.respuesta}}</button> </a> 
    {% endif %}    
    {% endfor %}    
    {% endfor %} 
</form> 

型号:

class Trivia(models.Model): 
    nombre = models.CharField(max_length=100) 
    slug = models.SlugField(unique=True) 
    categoria = models.ForeignKey(Categorias) 
    contador = models.IntegerField() 

    def __str__(self): 
     return self.nombre 

    class Meta(): 
     verbose_name_plural = "Trivias" 

class Preguntas(models.Model): 
    trivia = models.ForeignKey(Trivia) 
    pregunta = models.CharField(max_length=100) 

    def __str__(self): 
     return self.pregunta 

    class Meta(): 
     verbose_name_plural = "Preguntas" 

class Respuestas(models.Model): 
    pregunta = models.ForeignKey(Preguntas) 
    respuesta = models.CharField(max_length=100) 

    def __str__(self): 
     return self.respuesta 

    class Meta(): 
     verbose_name_plural = "Respuestas" 

class Records(models.Model): 
    trivia = models.ForeignKey(Trivia) 
    user = models.CharField(max_length=200) 
    pregunta = models.CharField(max_length=200) 
    respuesta = models.CharField(max_length=200) 

    def __str__(self): 
     return self.user 

我如何保存在记录模型中的每个回答的用户提供相应的答案挑?

对不起西班牙语的属性,客户端问这样。

在此先感谢。

+0

你应该使用表单向导这种工作在这里是如何链接形式 - 向导工程: https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/ – 2015-03-03 06:55:58

回答

0

你会想要使用相关对象的语法。

用法是:

# get one question 
p = Preguntas.objects.get(pk=1) 

# get all responses 
p.respuestas_set.all() 

Django文档在这里:

https://docs.djangoproject.com/en/1.7/topics/db/queries/#related-objects

+0

谢谢,但我怎么能得到的用户的选项有在模板中选择TE?你说这是在TriviaView中的get_queryset? – dfrojas 2015-03-03 03:45:26

+0

@dfrojas您可以将模板中的用户选项作为URL参数发送,然后对其进行处理。就像一个Django'forms.py'表单一样。 – 2015-03-03 20:56:28

相关问题