使用模板中的表单从Listview Django保存在DB中

时间:2015-03-03 01:26:12

标签: python django django-forms django-views django-class-based-views

即时建立一个小调查应用程序,我需要在一个页面中显示每个答案及其相应的答案,所以我用ListView和分页1来做它。

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

显然每个答案都必须保存在数据库中,但这里是我迷失的地方,我不知道如何保存在DB中,每个人都回答用户回复。

模板:

<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

如何在记录模型中保存用户选择的每个答案以及相应的答案?

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可能希望使用相关对象语法。

用法是:

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

# get all responses
p.respuestas_set.all()

Django Docs 在这里:

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