首页 > 解决方案 > 无法从数据库 django 中检索值

问题描述

我有一个表,我试图从中检索值。它有两个外键,就是这样。我在表上使用 get_or_create 并创建一个对象。我通过管理面板验证该对象是否存在。然后,我尝试检索它,但我没有得到这些值,即使我可以在管理面板中看到它们。

这是表格:

class req(models.Model):
    to = models.ForeignKey(User,on_delete=models.CASCADE)
    from = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return "request sent"

在下面的代码中,我从数据库中检索并尝试将其显示在 p 标签(html)中。在模板中,我尝试了 {{ req.to }} 和 {{ req.from.first_name }} 但徒劳无功,在呈现 html 时我没有看到任何值。

def get(self, request):
        u = get_user(request)
        try:
            my_requests = req.objects.get(from=u)
        except req.DoesNotExist:
            fr = None
        if fr == None:
            return redirect(reverse('myapp:index'))
        if my_requests != False:
            context_dict['req'] = my_requests
        return render(request, 'myapp/req.html', context=context_dict)
    

任何人都可以看到我无法评论的问题吗?

标签: pythonpython-3.xdjangodjango-modelsforeign-keys

解决方案


您的代码中有几个问题。这是解决您的问题的更新版本:-

def get(self, request):
    req_obj, created = req.objects.get_or_create(from=request.user)
    if created:
        context_dict['req'] = my_requests
        return render(request, 'myapp/req.html', context=context_dict)
    return redirect(reverse('myapp:index'))

推荐阅读