0

Django では、データをフィルタリングして結果を次のように表示する必要があります。例えば

Alabama(20)
Iowa(12)

ここで「アラバマ、アイオワ」は州名で、カッコ内の「20,12」は州名です。特定の州で利用可能な仕事の。

models.py

class User(models.Model):
     first_name= forms.CharField(max_length=30,widget=forms.TextInput())
     last_name = forms.CharField(max_length=30,widget=forms.TextInput())
     username = forms.CharField(max_length=30,widget=forms.TextInput())
     email = forms.EmailField(widget=forms.TextInput())
     password = forms.CharField(widget=forms.PasswordInput())
     companyname = forms.CharField(max_length=30,widget=forms.TextInput())

class jobs(models.Model):
     emp = models.ForeignKey(User, unique=False)
     title = models.CharField(max_length=30)
     referencecode = models.CharField(max_length=30)
     jobsummary = models.TextField()
     jobdetails = models.TextField()
     key_skills = models.CharField(max_length=30)
     states = models.CharField(max_length=30)

私はviews.pyを与えようとしました

def search_result(request):

     details = jobs.objects.annotate().order_by('state')
     return render_to_response('searchresult.html', {'details': details})

templates
<ul>
{% for d1 in details %}
<li>{{ d1.state }}({{ d1.count }})</li>
{% endfor %}
</ul>

カウントではなく州名のみを表示します。いくつかの説明をしてください。

4

2 に答える 2

1

あなたはこれを行うことができます:

from django.db.models import Count
jobs.objects.values('states').annotate(count=Count('states'))
于 2013-04-23T12:57:35.147 に答える
0

トリッキーに思えますが、「https://docs.djangoproject.com/en/dev/ref/models/querysets/」を参照することでこれを行うことができます

于 2013-04-23T12:36:38.047 に答える