我目前工作的一个Django项目,我有当前的模型DTL - 如果没有声明比较是真的......不知道为什么
from django.db import models
class Topic(models.Model):
def __str__(self):
return self.topic_text
topic_text = models.CharField(max_length=100)
class Subtopic(models.Model):
def __str__(self):
return self.subtopic_text
topic = models.ForeignKey(Topic)
subtopic_text = models.CharField(max_length=100)
class Question(models.Model):
def __str__(self):
return self.question_text
topic = models.ForeignKey(Topic)
subtopic = models.ForeignKey(Subtopic)
question_text = models.CharField(max_length=200)
mod_date = models.DateTimeField('date modified')
pub_date = models.DateTimeField('date published')
answer_text = models.TextField()
传递通过我的意见后
def index(request):
question_list = Question.objects.all()
topic_list = Topic.objects.all()
subtopic_list = Subtopic.objects.all()
context = {
'topic_list': topic_list,
'subtopic_list': subtopic_list,
'question_list': question_list
}
return render(request, 'interview/index.html', context)
而下面的模板
<ul>
{% for topic in topic_list %}
<li><a href="/interview/{{ question.id }}/">{{ topic.topic_text}}</a></li>
{% for subtopic in subtopic_list %}
{{topic.topic_text}} , {{subtopic.topic}}
**THIS HERE DOES NOT WORK**
{% if subtopic.topic == topic.topic_text %}
<ul>
<li><a href="/interview/{{ question.id }}/">{{ subtopic.subtopic_text}}</a></li>
<ul>
{% endif %}
{% for question in question_list %}
<li><a href="/interview/{{ question.id }}/">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% endfor %}
</ul>
{% endfor %}
</ul>
但是在if语句不工作就行了。当我将==
更改为!=
时,它会打印(错误的东西),所以我知道这不是我的语法,只是事实并非如此;然而,当我检查它
{{topic.topic_text}} , {{subtopic.topic}}
Finance , Finance
Finance , Coding
Finance , Finance
Coding , Finance
Coding , Coding
Coding , Finance
我的想法是,DTL它像Java和你不能比较使用==
串......但我无法找到任何有关DTL字符串比较独特。
感谢您的回复!但是,这并没有解决它。根据Django文档。 ifequal是'=='的旧版本。显然ifequal将被弃用。 –