【问题标题】:Queries over ManyToManyField with variable set in a sessions user在会话用户中设置变量的 ManyToManyField 查询
【发布时间】:2014-03-12 11:33:21
【问题描述】:

这是我的模型:

class Clients(models.Model):


    client_name = models.CharField(max_lenght=100)
    commentaire_clients = models.TextField(blank=False)
    date_demande = models.TimeField(auto_now_add=True)
    choix = models.ManyToManyField('Agence', blank=True)

    def __unicode__(self):
        return unicode(self.date_demande)


class Market(models.Model):
    nom_market = models.CharField(max_length=200)
    code_postal_market = models.ManyToManyField('Lieux', blank=True)
    statut_vip = models.BooleanField(default=False)

    def __unicode__(self):
        return self.nom_market 

class Lieux(models.Model):
    code_postal = models.CharField(max_length=200)
    ville = models.CharField(max_length=200)
    region = models.CharField(max_length=200)
    departement = models.CharField(max_length=200)
    longitude = models.DecimalField(max_digits=9, decimal_places=6)
    latitude = models.DecimalField(max_digits=9, decimal_places=6)
    pays = models.CharField(max_length=100)
    def __unicode__(self):
        return unicode(self.code_postal)

这是我的看法:

def comparelist(request):

    if request.session.get('code_postal'):
        poste = request.session.get('code_postal')
    else:
        poste = "RATE"

    market_match = Market.objects.filter(statut_vip=False, code_postal_market = poste)
    market_match_vip = Market.objects.filter(statut_vip=True)

   #edit bis repetita Market replace Agence models 

    return render_to_response('compare.html', {
        'code_postale': poste,
        'bien_immobilier': bien,
        'listing_agence' : market_match ,
        'listing_vip' : market_match_vip ,
    })

我要做的是进行一个查询,该查询将为我提供所有匹配的市场: - statut_vip = 假 - code_postal_market = poste(我从上一页表单的用户会话中获得

然后我尝试通过以下方式在我的模板中呈现它:

 {% for mes_market in listing_vip %}
        <br>{{mes_market.nom_market}}
        <br>{{mes_market.statut_vip}}
{% endfor %}       

编辑

这是我的 Listing_agence 模板(与上一个相同,但有正确的参考)抱歉错误。

 {% for mes_agences in listing_agence %}
        <br>{{mes_agences.nom_market}}
        <br>{{mes_agences.statut_vip}}

{% endfor %}       

我列出所有 VIP 客户的第二个查询确实有效,但是当我尝试通过用户通过表单提供的邮政编码进行过滤时(并通过会话保存记录) 什么都没有出现。

感谢您的帮助!

【问题讨论】:

  • Agence 型号代码未显示
  • 我不确定你在这里问什么。 listing_vip 只是 status_vip=True 的机构。依赖会话变量的机构是listing_agence

标签: django django-models django-queryset django-sessions


【解决方案1】:

我终于成功了!

我换了:

market_match = Market.objects.filter(statut_vip=False, code_postal_market = poste)

通过

market_match = Market.objects.filter(statut_vip=False, code_postal_market__code_postal=poste)

code_postal 来自表 Lieux

【讨论】:

    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2015-04-09
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多