私はこのthreadを見て、辞書のソートの例を見ました。文脈で辞書を注文するDjango
私はプログラムオブジェクトの辞書を持っており、そのキーはプログラムオブジェクトであり、その値は関連するProjectオブジェクトの数の検索です。
def DepartmentDetail(request, pk):
department = Department.objects.get(pk=pk)
programmes = Programme.objects.all().filter(department=department).exclude(active=False).order_by('long_name')
combi = {}
for p in programmes:
prj = Project.objects.all().filter(programme=p)
combi[p] = str(len(prj))
return render(request, 'sysadmin/department.html',{'department': department, 'programmes': programmes, 'combi': sorted(combi.items())})
モデルでは、プログラムは文字列 'long_name'を返します。したがって、文字列キーと文字列値をソートしようとしています。私はそうと、キーと値を取得するテンプレートで
、
{% for programme, n in combi %}
これは私にエラーを与えます。..
unorderable types: Programme() < Programme()
私は本当にpython 3 documentationで、エラーを理解していませんソートされた()メソッドは反復可能なものを受け入れると述べています - なぜこのようなことが起こりますか?
私はこの問題を解決するためにcollections.OrderedDictを見ていますが、なぜこれが機能しないのかを知りたいと思います。
Thanx。
私が探しています関連プロジェクトのサーバー側を提供することができますか?もしそうなら、正しい方法は何でしょうか? – Xeberdee
ちょうどコンビの値が何であるかを見ていて、 'annotate(project_count = Count( 'project'))'を追加したように見えるでしょう – Sayse
更新を参照してください – e4c5