Django не может вывести результат
я создал приложение обратной связи в системе обучения, однако я не могу отобразить страницу обратной связи, которая возвращает данные обратной связи, когда я нажимаю на ссылку обратной связи, она не возвращает ничего, как показано ниже. введите описание изображения здесь
Ниже представлен view.py
# feedback/views.py
from django.shortcuts import render, redirect
from django.contrib import messages
from accounts.models import User
def feedback_view(request):
feedback_data = User.objects.filter(username=request.user)
context = {
"feedback_data": feedback_data
}
return render(request, "feedback/feedback.html", context)
@property
def feedback_save(request):
if request.method != "POST":
messages.error(request, "Invalid Method.")
return redirect('feedback')
else:
feedback = request.POST.get('feedback_message')
feedback_data = User.objects.get(username=request.user.id)
try:
add_feedback = FeedBack(username=feedback_data, feedback=feedback, feedback_reply="")
add_feedback.save()
messages.success(request, "Feedback Sent.")
return redirect('feedback')
except:
messages.error(request, "Failed to Send Feedback.")
return redirect('feedback')
model.py
from django.db import models
from django.conf import settings
User = settings.AUTH_USER_MODEL
class FeedbackMessage(models.Model):
id = models.AutoField(primary_key=True)
user_id = models.ForeignKey(User, on_delete=models.CASCADE)
feedback = models.TextField()
feedback_reply = models.TextField(null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
objects = models.Manager()
feedback.html
я ожидаю, что приложение должно возвращать отзывы каждого пользователя в строке и ячейку ответа в конце
В вашем коде есть несколько проблем.
Главная проблема в том, что вы запрашиваете неправильную модель.
Отзывы ваших пользователей хранятся в модели FeedbackMessage
, но вы запрашиваете модель User
.
Запрос FeedbackMessage
модели:
feedback_data = FeedbackMessage.objects.filter(user_id=request.user)
Другие вопросы
- Как отметил @Chukwujiobi Canon, нельзя использовать декоратор @
property
на функциях, его следует использовать с методами класса .
{% load static %}
лучше определить load static в верхней части вашего шаблона- Django автоматически создает определенные поля в вашей модели, так что вам не нужно явно определять их. За дополнительной информацией обратитесь к документации Django.