2013-04-20 80 views
0

我想将相关对象显示给在我的django网站上签出的用户。就像推荐一样。例如,当用户点击拉斯维加斯州的一个物体时,我希望拉斯维加斯的其他相关物体可以通过边栏显示。相关对象不显示

就像用户点击一个名为“拉斯维加斯的家”的链接,当用户被重定向到一个显示家庭的页面,并在侧栏上显示“拉斯维加斯的其他家园”希望你明白我的观点?我尝试了下面的代码,但它不工作。一整天都在与这场战斗,但没有成功。

模型

class Finhall(models.Model): 
    user=models.ForeignKey(User) 
    name=models.CharField(max_length=250, unique=True) 
    address=models.CharField(max_length=200) 
    city=models.CharField(max_length=200) 
    state=models.CharField(max_length=200, help_text='Las vegas') 

    def __unicode__(self): 
     return u'%s' % (self.name) 

浏览:

def homedetail(request,finhall_id,slug): 
    post=Finhall.objects.get(id=finhall_id,slug=slug) #show details of an object 

    stateme=Finhall.objects.get(state) #show similar objects based on state 
    booms=Finhall.objects.filter(state=stateme) 
    vips=booms.select_related() 
    for vip in vips: 
     print vip.id 
    return render_to_response('postdetail.html',{'post':post,'vips':vips,'Finhall':Finhall},context_instance=RequestContext(request)) 
+0

在你的例子中'state'来自哪里? – 2013-04-20 12:55:16

回答

1

假设state派生从post你应该用filter代替get且模板中遍历stateme,例如

def home(request, finhall_id, slug): 
    qs = Finhall.objects.all() 

    try: 
     finhall = qs.get(id=finhall_id, slug=slug) 
    except Finhall.DoesNotExist: 
     finhall = None 

    if finhall: 
     similar_finhalls = qs.filter(finhall.state) 
    else: 
     similar_finhalls = Finhall.objects.none() 

    # other stuff 

    return render_to_response('home.html', { 
     'finhall': finhall, 
     'similar_finhalls': similar_finhalls 
    },context_instance=RequestContext(request)) 
+0

我得到“状态未定义”状态与Finhall有关。当用户点击finhall_id时,它会显示所有的细节。国家是其中的一部分。如上面的模型所示。希望你明白我的观点? – picomon 2013-04-20 13:57:15

+0

不应该是'finhall.state'吗? – 2013-04-20 14:00:38

+0

现在变得“局部变量fi​​nhall”在任务前引用“任何想法?请。 – picomon 2013-04-20 14:20:51