【问题标题】:cannot GET objects from database Django无法从数据库 Django 获取对象
【发布时间】:2022-08-05 21:25:35
【问题描述】:

我无法从我的数据库中获取对象。我什么也没得到。 在终端中,我没有收到错误,并且我正在毫无问题地进入网站。 我想从中获取信息。

 DT = Destination_Tour.objects.all()

我的观点.py

def index(request):
min_date = f\"{datetime.now().date().year}-{datetime.now().date().month}-{datetime.now().date().day}\"
max_date = f\"{datetime.now().date().year if (datetime.now().date().month+3)<=12 else datetime.now().date().year+1}-{(datetime.now().date().month + 3) if (datetime.now().date().month+3)<=12 else (datetime.now().date().month+3-12)}-{datetime.now().date().day}\"
citynames = Place.objects.all()
slider = Slider.objects.all()
DT = Destination_Tour.objects.all()
if request.method == \'POST\':
    origin = request.POST.get(\'Origin\')
    destination = request.POST.get(\'Destination\')
    depart_date = request.POST.get(\'DepartDate\')
    seat = request.POST.get(\'SeatClass\')
    trip_type = request.POST.get(\'TripType\')
    citynames = Place.objects.all()
    if(trip_type == \'1\'):
        return render(request, \'base.html\', {
        \'origin\': origin,
        \'destination\': destination,
        \'depart_date\': depart_date,
        \'seat\': seat.lower(),
        \'trip_type\': trip_type,
        \'name\':citynames,
    })
else:
    return render(request, \'base.html\', {
        \'min_date\': min_date,
        \'max_date\': max_date
    })
context = {
    \'name\':citynames,
    \'sd\': slider,
    \'DT\' : DT,
    }

return render(request,\'base.html\', context = context)
  • 您是否尝试使用 django shell 获取所有数据?输入python manage.py shell,然后导入您的模型并输入查询集Destination_Tour.objects.all()。它奏效了吗?

标签: django django-models django-views


【解决方案1】:

这是因为你 not passing your variable 在正确的位置,

仔细看,你的索引视图被执行了before 你通过上下文传递了你的DT 变量

使用POST 和GET 方法你只能return 运行两次,但你使用了三次,第三次将never be executed

它应该是这样的:

def index(request):
    min_date = f"{datetime.now().date().year}-{datetime.now().date().month}-{datetime.now().date().day}"
    max_date = f"{datetime.now().date().year if (datetime.now().date().month+3)<=12 else datetime.now().date().year+1}-{(datetime.now().date().month + 3) if (datetime.now().date().month+3)<=12 else (datetime.now().date().month+3-12)}-{datetime.now().date().day}"
    citynames = Place.objects.all()
    slider = Slider.objects.all()
    DT = Destination_Tour.objects.all()

    #also good practice for debuging is to print your variables in terminal
    print(DT)

    if request.method == 'POST':
        origin = request.POST.get('Origin')
        destination = request.POST.get('Destination')
        depart_date = request.POST.get('DepartDate')
        seat = request.POST.get('SeatClass')
        trip_type = request.POST.get('TripType')
        citynames = Place.objects.all()
        if(trip_type == '1'):
            return render(request, 'base.html', {
            'origin': origin,
            'destination': destination,
            'depart_date': depart_date,
            'seat': seat.lower(),
            'trip_type': trip_type,
            'name':citynames,
            'DT' : DT,
        })
    else:
        return render(request, 'base.html', {
            'min_date': min_date,
            'max_date': max_date
            'DT' : DT,
        })

【讨论】:

    猜你喜欢
    • 2014-09-17
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 2020-02-08
    相关资源
    最近更新 更多