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))
4

1 に答える 1

1

の代わりに使用する必要があるstateから派生したと仮定し、テンプレートで繰り返します。postfiltergetstateme

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))
于 2013-04-20T13:01:42.553 に答える