38

get_object_or_404データベースから値のリストを取得しようとしています。状態変数の関数をフィルタリングして、get_object_or_404に関連付けられている値のみを取得しようとしていdisease_idます。以下のコードは機能しません (State テーブルのすべての値を取得します。何かアイデアはありますか?

ビュー.py

def option(request, disease_id, state_id):

    state = get_object_or_404(State, relevantdisease=disease_id)
    disease = get_object_or_404(Disease, pk=disease_id)

    context = {'state': state, 'disease':disease }
    return render(request, "option.html", context)

models.py

class State(models.Model):
    state = models.CharField(max_length=300, verbose_name='state')
    relevantdisease = models.ForeignKey(Disease, verbose_name="disease")
4

3 に答える 3

62

get_object_or_4041 つのオブジェクトのみを返します。get_list_or_4041 つの疾患に対して複数の状態が存在する可能性があるため、次のことが必要です。

from django.shortcuts import get_list_or_404, get_object_or_404

def option(request, disease_id, state_id):

    state = get_list_or_404(State, relevantdisease__pk=disease_id)
    disease = get_object_or_404(Disease, pk=disease_id)

    context = {'state': state, 'disease':disease }
    return render(request, "option.html", context)
于 2013-08-21T06:31:13.460 に答える