ValidationError (Django)
hello я разрабатываю систему с функцией обратной связи, которая захватывает только user_id, однако я сталкиваюсь с ошибкой validationerror, как показано ниже введите описание изображения здесь
вот мой 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()
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):
user_obj = User.objects.get(is_superuser=request.user.id)
feedback_data = FeedBackUser.objects.filter(user_id=user_obj)
context = {
"feedback_data": feedback_data
}
return render(request, "staff_template/staff_feedback_template.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')
staff_obj = User.objects.get(is_superuser=request.user.id)
try:
add_feedback = FeedBack(user_id=user_obj, 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')
Мне нужно перехватить только идентификатор пользователя, когда он отправляет отзыв, а также отфильтровать нецензурные слова (ругательства) в каждом отправленном отзыве, если таковые встречаются
Вы можете получить идентификатор пользователя просто с помощью request.user.id
. Кроме того, is_superuser
является булевой функцией. Другими словами, is_superuser
будет True, если пользователь является суперпользователем, False в противном случае. Это НЕ id
.
Попытка:
def feedback_view(request):
# REMOVE THIS
# user_obj = User.objects.get(is_superuser=request.user.id)
# CHANGE THIS
# feedback_data = FeedBackUser.objects.filter(user_id=user_obj)
# TO THIS:
feedback_data = FeedBackUser.objects.filter(user_id=request.user)
context = {
"feedback_data": feedback_data
}
return render(request, "staff_template/staff_feedback_template.html", context)