我有一个模型如下:
class Venture(models.Model):
name = models.CharField(_('name'), max_length=255)
created = models.DateTimeField(editable=False)
modified = models.DateTimeField()
class QuestionSet(models.Model):
title = models.CharField(_(u'title'), max_length=100)
class Question(models.Model):
title = models.CharField(_(u'title'), max_length=255)
qset = models.ForeignKey(QuestionSet, related_name='questions')
class Answer(models.Model):
question = models.ForeignKey(Question, related_name='answers')
responder = models.ForeignKey(User)
venture = models.ForeignKey(Venture, related_name='answers')
text = models.TextField(_(u'answer'), blank=True, null=True)
timestamp = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
存在一组针对所有用户的预定义问题.对于每个Venture,我有一个每个QuestionSet的页面,其中列出了该集合中的问题,我循环了以下问题:
<div> {{ venture.name }} </div>
{% for question in qset.questions.all %}
<div class="qset-question control-group">
{{ question.title }}
{# How do I access the answer for the current venture? #}
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
问题是什么是获得当前企业的问题答案的最佳方式.我想在这里输出一些关于答案的信息.
任何帮助表示赞赏.
我通过创建自定义模板tage解决了这个问题.这是代码:
@register.assignment_tag
def question_answer(venture, question):
answers = question.answers.filter(venture=venture)
return answers[0] if answers else None
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
{% question_answer venture question as answer %}
{{ answer }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7541 次 |
| 最近记录: |