Как я могу применить логику, если пользователь присутствует в модели заказа Frontend?
Я просто хочу, чтобы если пользователь заказал что-то, то он мог оценить заказ, в противном случае он не сможет и покажет сообщение об ошибке "Вы не приобрели никакой сайт". Я применял логику 5/6 раз разными способами, но не смог решить проблему.
Oeder Model:
class Frontend_Order(models.Model):
USer = models.ForeignKey(User,default=None,on_delete=models.CASCADE,related_name='user_frontend_order')
Service_Type = models.CharField(max_length=250, null=True)
Price = models.CharField(max_length=250, null=True)
Number_of_Section = models.CharField(max_length=250, null=True)
Per_section_Price = models.CharField(max_length=250, null=True)
Website_Functionality = models.CharField(max_length=50, null=True)
Email = models.EmailField(max_length=50, null=True)
files = models.FileField(upload_to="0_frontend_files/", null=True, blank=True)
created_date = models.DateTimeField(auto_now_add=True, null=True)
order_message = models.ForeignKey(Message_Manu,on_delete=models.CASCADE, null=True, related_name="message")
def __str__(self):
return str(self.pk)+ str(".") + str(self.USer)
Рейтинговая модель:
class Frontend_Rating(models.Model):
USer = models.OneToOneField(User,default=None,on_delete=models.CASCADE, related_name="frontend_rating")
Rating = models.IntegerField(null=True)
Feedback = models.TextField(max_length=250, null=True)
created_date = models.DateTimeField(auto_now_add=True, null=True)
def __str__(self):
return str(self.pk)+ str(".") + str(self.USer) + str("(") + str(self.Rating) + str("stars") +str(")")
Просмотр заказа:
def frontend_order_rating(request):
if request.user.is_authenticated:
if request.method == "POST":
frontend_rating = int(request.POST.get('frontend_ratting'))
frontend_feedback = request.POST.get('frontend_feedback')
try:
Frontend_Rating.objects.create(
USer = request.user,
Rating = int(frontend_rating),
Feedback = frontend_feedback
)
messages.success(request,f"{request.user.first_name}, Thank You for your feedback!")
return redirect("/", userz = request.user)
except:
messages.error(request,f"{request.user.first_name}, Sorry! You've already given a feedback!")
return redirect("/", userz = request.user)
else:
messages.error(request,"Please login or create an account.")
return redirect("/")
сначала проверьте, делал ли пользователь когда-либо заказ по
if Frontend_Order.objects.filter(USer=request.user.id):
# your code for thanking for feedback
else:
# your code for sorry