使用get_object_or_404获取数据库值

nlr*_*r25 26 django

我正在get_object_or_404尝试从我的数据库中获取值列表.我正在尝试过滤get_object_or_404状态变量的函数,只捕获与之关联的值disease_id.下面的代码不起作用(它抓取状态表中的所有值.任何想法?

views.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)
Run Code Online (Sandbox Code Playgroud)

models.py

class State(models.Model):
    state = models.CharField(max_length=300, verbose_name='state')
    relevantdisease = models.ForeignKey(Disease, verbose_name="disease")
Run Code Online (Sandbox Code Playgroud)

Bur*_*lid 39

get_object_or_404只会返回一个对象.你需要get_list_or_404因为一种疾病可能有多种状态:

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)
Run Code Online (Sandbox Code Playgroud)