0
私は2つのモデルを持っています。Djangoフィルタオブジェクトと最初に対応する値を取得
class House(models.Model):
name= models.Charfield(max_length=100)
city= models.Charfield(max_length=100)
area= models.CharField(max_length=200)
country=models.CharField(max_length=30)
class HouseRooms(models.Model):
room_name=models.Charfield(max_length=200)
house= models.ForeignKey(House, related_name='house_hr')
room_price=models.PositiveIntegerField()
ユーザーがキーワード検索を実行して、私はそれぞれの「家」の名前とそれに対応する「HouseRooms」の最初のroom_priceを返すようにしたいです。下の私の意見を参照してください。
def my_house_search(request):
query_string= ''
rms= None
sms=None
if ('q' in request.GET) and request.GET['q'].strip():
query_string = request.GET['q']
entry_query= get_query(query_string, ['city','country',])
rms= House.objects.filter(entry_query).order_by('-pub_date')
sms= HouseRooms.objects.filter(house_id__in=rms)
return render(request, 'search/my_house_search.html',{'rms':rms, 'sms':sms, 'query_string':query_string})
テンプレート:私が書いたコードで
{% if query_string %}
<p> Results </p>
{% if rms %}
{% for m in rms %}
<p> Name: {{ m.name }} </p>
{% empty %}
<p> No house found </p>
{% endfor %}
{% for sd in sms %}
<p> price: {{ sd.room_price }} for {{sd.room_name}}</p>
{% empty %}
<p> no price found </p>
{% endfor %}
{% endif %}
{% endif %}
、それは各家の名前を返すと、このようなすべての家に、すべての価格が表示されます:
Coker House
Klopp House
$50/day for small room
$100/day for medium room
$200/day for big room
$200/day for quack room
$400/day for master room
$500/day for big room
私はちょうどしたいですこのような結果を返します。
Coker House
$50/day for small room
Klopp House
$200/day for quack room
何が欠けていますか?これについてどうすればいいですか?
あなたはダニエルをロックします。今働いている。ありがとう。 – YoYo