Как я могу ограничить числа, если комментарий будет отображаться - PullRequest
2 голосов
/ 12 февраля 2020

У меня есть несколько комментариев на моей домашней странице, как я могу ограничить комментарий, который будет отображаться в сообщении. Например, у меня есть 10 комментариев, и я хочу отобразить только 2 комментария.

class Image(models.Model):
        imageuploader_profile = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE, null=True, blank=True)
        first_upload_image = models.FileField(upload_to ='picmate',null=True, blank=True)
        second_upload_image = models.FileField(upload_to ='picmate',null=True, blank=True)
        image_caption = models.CharField(max_length=700)
        date = models.DateTimeField(auto_now_add=True, null= True)

        class Meta:
            verbose_name = 'Image'
            verbose_name_plural = 'Images'
            ordering = ['-date']

        def __str__(self):
            return self.image_caption



     class Comments (models.Model):
            comment_post = models.TextField()
            author = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE, null=True, blank=True)
            commented_image = models.ForeignKey('Image', on_delete=models.CASCADE, related_name='comments')
            date = models.DateTimeField(auto_now_add=True)

        class Meta:
            verbose_name = 'Comment'
            verbose_name_plural = 'Comments'
            ordering = ['-date']

        def __str__(self):
            return self.author.__str__()

    def home(request):
        all_images = Image.objects.filter(imageuploader_profile=request.user.id)
        users = User.objects.all()
        next = request.GET.get('next')
        if next: return redirect(next)

        context = {
            'all_images': all_images,
            'users': users,     
        }
        return render(request,'home.html', context,)

    @login_required
    def comments(request, id):  
        post = get_object_or_404(Image,id=id)   
        # current_user = request.user
        print(post)
        if request.method == 'POST':
            form = CommentForm(request.POST)
            if form.is_valid():
                comment = form.save(commit=False)
                comment.author = request.user
                comment.commented_image = post
                comment.save()
                return redirect('/')
        else:
            form = CommentForm()

        all_comments = Comments.objects.filter(
            author=request.user.id,
            commented_image=post,
        )

    {% for comment in post.comments.all %}
    <div class="mb-1" style="padding-bottom:-10px;position:relative;top:-10px">
    <div class="truncate card-meta dark-grey-text" style="">
    <a href="#" class="username dark-grey-text text-lowercase">
    {{ comment.author }}</a>&nbsp;&nbsp;{{ comment.comment_post }}
    </div>
    </div>
    {% endfor %}

1 Ответ

0 голосов
/ 12 февраля 2020

Вы можете использовать django шаблон тега слайс


{% for comment in post.comments.all|slice:":2" %}
  {{ comment.author }}
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...