【问题标题】:How to recover in a template a value from the database in django如何在模板中从 django 的数据库中恢复一个值
【发布时间】:2016-06-05 04:39:55
【问题描述】:

我希望我能以模板的形式检索我的问题的答案(如果有的话)

我的模型.py

class Page(models.Model):
    title = models.CharField(max_length=30)


    def __str__(self):
        return self.title

class Question(models.Model):
    label = models.CharField(max_length=30)
    page = models.ManyToManyField(Page)

    def __str__(self):
            return self.label

class Reply(models.Model):
    question = models.ForeignKey(Question)
    user = models.ForeignKey(Personne)
    answer = models.CharField(max_length=30)
    creationDate = models.DateTimeField(default=django.utils.timezone.now)

    def __str__(self):
        return str(self.answer)

自从我的问题得到答案后,我如何使用我的模型进行访问?

我的模板

<form method="POST" action="">
    {{ formset.management_form }} {% csrf_token %}
    <table>

      <!-- <br>{{ formset.as_table }}<br> -->

      {% for question in questions %}<hr>

    <label for="question">{{ question }} [{{ question.id }}]</label>  
    <input type="hidden" id="id_form-{{ forloop.counter0 }}-question" name="form-{{ forloop.counter0 }}-question" value="{{ question.id }}"/>


  </p>
  <p>
    <label for="answer">Réponse :</label>
    <input type="text" id="id_form-{{ forloop.counter0 }}-answer" name="form-{{ forloop.counter0 }}-answer" value="{{ question.answer }}"/>
  </p> 

{% endfor %}
       <br><br><br><hr> <br><br><br>
    </table><br>
    <center><input type="submit" value="Submit" class="btn btn-success" />
    <a href="../../baseVisite/" class="btn btn-success">Retour</a></center>
  </form>

如果数据库的答案字段中有答案,我不知道如何检索答案。

我的问题是模板中的这一行:

<input type="text" id="id_form-{{ forloop.counter0 }}-answer" name="form-{{ forloop.counter0 }}-answer" value="{{ HERE }}"/>

我不知道该投入什么价值来检索答案

【问题讨论】:

  • 如果一个问题有多个回复怎么办?

标签: python django templates django-templates


【解决方案1】:

Question 对象将具有reply_set 属性,其中包含与该问题相关的Reply 的所有对象的记录集,您可以对其进行迭代和显示。

{% for reply in question.reply_set %}
    <p>
    <label for="answer">Réponse :</label>
    <input type="text" id="id_form-{{ forloop.parentloop.counter0 }}-answer" name="form-{{ forloop.parentloop.counter0 }}-answer" value="{{ reply.answer }}"/>
    </p>
{% endfor %}

当然,您必须处理一个有多个回复的问题。

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2021-07-20
    相关资源
    最近更新 更多