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