I have a model with replies and in template the replies with highest upvote should come first.
In my local machine its coming correctly however on server replies are filtered based on FK of upvote field.
Model:
class solution(models.Model):
doubt=models.ForeignKey(doubts,related_name='answers')
reply=models.TextField()
snapshot = models.FileField(upload_to='support',null=True,blank=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
user=models.ForeignKey(settings.AUTH_USER_MODEL,null=True,blank=True)
upvote = models.ManyToManyField(User,related_name='upvoteuser')
@property
def total_upvotes(self):
return self.upvote.count()
def __str__(self):
return str(self.doubt)
view
def ticketdetails(request,slug,pk):
ticketis=doubts.objects.get(pk=pk)
replies = ticketis.answers.all().order_by('-upvote')
if request.method== 'POST':
form=replyform(request.POST)
if form.is_valid():
new_form=form.save(commit=False)
new_form.user=request.user
new_form.doubt=ticketis
new_form.save()
form=replyform()
return HttpResponseRedirect(reverse('ticketdetail',kwargs={'slug':ticketis.slug,'pk':ticketis.id}),messages.add_message(request, messages.SUCCESS,'Response submitted succesfully.'))
else:
form=replyform()
return render(request,'ticketview.html',{'ticketis':ticketis,'replies':replies,'form':form})