Не удается получить значения из базы данных 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, а также я пытался сделать req.to и req.from.first_name, но тщетно, я не увидел никаких значений.
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('dogpark:index'))
if my_requests != False:
context_dict['req'] = my_requests
return render(request, 'myapp/req.html', context=context_dict)
Может ли кто-нибудь увидеть проблему, которую не вижу я, и прокомментировать ее?
В вашем коде есть несколько проблем. вот обновленная версия, которая решает вашу проблему :-
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('dogpark:index'))