2014-12-05 89 views
-1

我想要的是:迭代发布数据的每个用户,并且如果帖子的用户名等于所连接的用户,则写入“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}) 
+0

不能打印''ifequal'之前user.username'和'o.user'?顺便说一句,不要写“哈哈”,更好写“富”或“酒吧”。 – 2014-12-05 16:08:40

+0

您正在比较字符串与用户对象。 – vikingosegundo 2014-12-05 16:28:13

回答

2

现在你比较的用户名对象的用户,尝试这样的:

{% ifequal user.username o.user.username %} 
... 
+0

在我的模型用户是用户名,所以我不认为这会改变任何东西 – nokker 2014-12-05 16:14:53

+0

@nokker显示您的模型 – 2014-12-05 16:16:23

+0

一切都编辑添加formmodel,模型和视图 – nokker 2014-12-05 16:19:52