我想要的是:迭代发布数据的每个用户,并且如果帖子的用户名等于所连接的用户,则写入“foo”。Loop Django模板
问题:我认为o.user不会在{%%}或if语句之间给我提供信息。 的有趣的是,o.user确实给我ifequal外界信息(p标签)
我没有找到的错误,我没有...
<div class="secondblock" >
{% for o in p %}
{% ifequal user.username o.user %} Foo
{% endifequal%}
<p style="box-shadow: 1px 1px 3px rgb(216, 216, 216); background-color:white; padding : 10px;margin-top:5px;text-align:left; max-height:75px; overflow:auto; border: 1px solid rgb(229, 229, 229); "><span style="color: red;font-weight: 400; cursor:pointer;">{{o.user|upper }}</span> <span style="font-size:0.9em; float:right;">{{o.createdat}}</span>
</br>
</br> {{o.postit}} </p>
{% endfor %}
</div>
formmodel:
class StoryForm(ModelForm):
class Meta:
model = Topic
exclude =('user','createdat','comment')
型号:
class Topic(models.Model):
user = models.ForeignKey(User)
postit = models.TextField(max_length=300)
comment = models.TextField(max_length=300)
createdat = models.DateTimeField(default=timezone.now)
'''createdat = models.DateTimeField(auto_now_add=True)
updatedat = models.DateTimeField(auto_now=True)
def created(self):
return self.createdat
'''
def updated(self):
return self.updatedat
def timer(self):
return self.createdat
def username(self):
return self.user
def __str__(self): # __unicode__ on Python 2
return self.postit
我的观点:
def chat(request):
'''
if not request.user.is_authenticated():
return redirect('/login/?next=%s' % request.path)
return render(request,'chat/chat.html')
'''
if request.method == 'POST':
form = StoryForm(request.POST)
if form.is_valid():
storyi = form.save(commit=False)
storyi.user = request.user
storyi.save()
return HttpResponseRedirect('/chat/')
else:
form=StoryForm()
try:
p = Topic.objects.all().order_by('-createdat')[:5]
#p.encode('ascii', 'ignore')
except ObjectDoesNotExist:
p= "don't try it again"
return render(request,'chat/chat.html',{'form': form, 'p':p})
不能打印''ifequal'之前user.username'和'o.user'?顺便说一句,不要写“哈哈”,更好写“富”或“酒吧”。 – 2014-12-05 16:08:40
您正在比较字符串与用户对象。 – vikingosegundo 2014-12-05 16:28:13