{{ object.title }}
{{ object.content }}
{{comments_number}} Comments
{% for comment in comments %}
{% endfor %}
我在我的博客中为我的帖子使用了详细 View ,每篇帖子都有评论,所以我想对它们进行分页,但我不知道该怎么做,因为我请求了帖子模型。我知道如何在功能 View 中执行此操作,但不知道如何在详细 View 中执行...
##view :
class PostDetailView(DetailView):
model = Post
def get_context_data(self, **kwargs):
context = super(PostDetailView, self).get_context_data(**kwargs)
context['comments'] = Comment.objects.filter(post_id=self.object.id).all()
context['comments_number'] = Comment.objects.filter(post_id=self.object.id).count()
context['form'] = CommentForm()
return context
def post(self, request, pk):
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = Post.objects.get(id=pk)
comment.user = request.user
comment.save()
post = Post.objects.get(pk=pk)
post.comments_nmb+=1
post.save()
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
##template:
{% extends "blog/base.html" %}
{% block content %}

{{ object.title }}
{{ object.content }}
{{comments_number}} Comments
{% for comment in comments %}
{% endfor %}
{% endblock content %}
如何在for循环中对评论进行分页?
1 Câu trả lời
几乎完全一样的方式:
from django.core.paginator import Paginator
class PostDetailView(DetailView):
model = Post
def get_context_data(self, **kwargs):
context = super(PostDetailView, self).get_context_data(**kwargs)
page = self.request.GET.get('page')
comments = Paginator(self.object.comment_set.all(), 25)
context['comments'] = comments.get_page(page)
context['comments_number'] = self.object.comment_set.count()
context['form'] = CommentForm()
return context
# ...
我们因此从self.request.GET
参数中获取page
参数,然后我们制作一个Paginator
并相应地对其进行分页。您可能还应该根据某些字段对评论进行排序。现在评论可以以任何顺序出现,因此下一页可以包含出现在上一页的评论,等等。
comments
变量因此是一个分页对象,您可以像在基于函数的 View 中一样呈现它。
请注意,您可以使用 comment_set
(或者如果您设置了另一个 related_name
,则该名称)来访问与 Post
相关的属性集> 对象。
话虽这么说,也许这更像是一个ListView
over the comments,或者一个FormView
,因为你包含了一个Form
来评论。
关于python - 详细 View 中的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54733232/
Điều tôi muốn làm là để JTextPane chiếm càng nhiều không gian càng tốt trong JPanel. Đối với UpdateInfoPanel tôi sử dụng: public class UpdateInfoPanel extends JP
Tôi có một JTextArea trong JPanel và tôi muốn sử dụng nó với JScrollPane. Tôi đang sử dụng GridBagLayout. Khi tôi chạy nó, khung dường như tạo chỗ cho JScrollPane, nhưng
Tôi muốn đạt được chức năng sau trong xcode. Tôi có một Bộ điều khiển chế độ xem. Trong UIViewController này, tôi có một UITabBar. Bên dưới chúng là UIView. UITab
Có ai biết trong Firebird 2.5 có chức năng nào tương tự như hàm "STUFF" trong SQL không? Tôi có một bảng chứa các bản ghi người dùng cha và một bảng khác chứa các bản ghi người dùng con liên quan đến cha. Tôi muốn có thể trích xuất một chuỗi được phân tách bằng dấu phẩy của "ROLES" mà người dùng có, trong khi
Tôi muốn sử dụng JSON làm đầu vào và đầu ra của kênh mirth, ví dụ như thông tin chi tiết được lưu trong cơ sở dữ liệu hoặc tin nhắn HL7 được tạo. Nói tóm lại, đầu vào là JSON, phân tích cú pháp và đầu ra là bất kỳ định dạng nào. Câu trả lời hay nhất: var object
Thông thường tôi sẽ sử dụng R và thực hiện merge.by, nhưng tệp này có vẻ quá lớn đối với bất kỳ máy tính nào trong khoa để xử lý! (Thông tin bổ sung cho bất kỳ ai làm việc trong lĩnh vực di truyền học) Về cơ bản, việc quy imputation dường như đã xóa các số rs cho ID snp và tôi còn lại
Tôi có một câu hỏi có thể đã được hỏi trước đây, nhưng tôi đang gặp khó khăn trong việc tìm ra mô tả phù hợp. Tôi hy vọng có ai đó có thể giúp tôi. Trong mã bên dưới, tôi đã đặt varprice và tôi muốn thêm biến javascript accu_id để tra cứu bản ghi trong cơ sở dữ liệu của tôi thông qua rails
Tôi có một tệp SVG đơn giản hiển thị tốt trên Firefox - tệp này có một số văn bản được bao bọc chứa một số mã HTML bằng cách sử dụng foreignObject - văn bản được bao bọc trong một div:
Vì vậy, tôi đang viết một chương trình Ruby cho trường học để thay đổi giá trị bool thành true nếu giá trị là 1 hoặc 3 và thành false nếu giá trị là 0 hoặc 2. Vì tôi có kiến thức nền về Java nên tôi nghĩ đoạn mã này sẽ hoạt động:
Những gì tôi đã làm: Tôi đã tạo kết nối ngang hàng VPC giữa các tài khoản này. Internet Gateway cũng được đính kèm vào mỗi VPC. Ngoài ra, tôi cũng đã cấu hình bảng định tuyến (để cho phép lưu lượng truy cập từ cả hai phía). Trường hợp 1: Khi cả hai VPC đều nằm trong cùng một tài khoản, tôi đã thử nghiệm thành công kết nối từ một La khác.
Tôi có một bảng có tên là danh bạ: user_id contact_id 10294 10295 10294 10293 10293 10294 102
Tôi đang sử dụng mẫu mới trong Magento. Để tránh trùng lặp mã, tôi muốn sử dụng cùng một mẫu con cho mỗi bản xem trước sản phẩm. Cụ thể, tôi đã tạo một màn hình như thế này: $products = Mage::getModel('catalog/pro
"for" có luôn kiểm tra loại đối số đầu tiên trong mọi hàm được định nghĩa trong giao thức không? Chỉnh sửa (sửa lại): Khi một phương thức giao thức chỉ có một tham số, một triển khai sẽ được tìm thấy dựa trên kiểu của tham số duy nhất đó (trực tiếp hoặc tùy ý). Khi thỏa thuận (p
Tôi muốn gọi một hàm JavaScript từ mã PHP của mình. Tôi đã thực hiện điều này bằng cách sử dụng: echo ' drawChart($id); '; Điều này hoạt động tốt nhưng tôi muốn lấy dữ liệu từ mã PHP của mình và tôi sử dụng
Câu hỏi này đã có câu trả lời: Liên kết sự kiện trên các phần tử được tạo động? (23 câu trả lời) Đã đóng 5 năm trước. Tôi có một biểu mẫu động mà tôi muốn thêm một số h khác
Tôi đang cố tìm giải pháp để sử dụng setState trên một mục bản đồ trong componentDidMount. Tôi đang sử dụng GraphQL với Gatsby để trả về nhiều mục dữ liệu, nhưng yêu cầu
Tôi có một View bên trong một ScrollView. Miễn là người dùng giữ nút View, tôi muốn gọi một phương thức sau mỗi 80 mili giây. Đây là những gì tôi đã thực hiện: final Runnable rung = new Runnab
Tôi đã phát triển một ứng dụng Android bằng jni. Tôi nhận được lỗi dvmabort trong dvmDecodeIndirectRef của GetStringUTFChars. Tôi chỉ dừng lại một lần. Tại sao lại thế này
Khi đến phần Hoạt động, tôi gọi FragmentPagerAdapter để xử lý các tab khác nhau. Trong một trong các tab của tôi, tôi muốn hiển thị RecyclerView nhưng nó không bao giờ xuất hiện, với các điểm dừng mà tôi thấy
Khi tôi nhấn một nút trong Activity, DialogFragment sẽ bật lên. Trong đoạn hộp thoại, có một RecyclerView trông giống như một ListView bình thường. Hành vi tôi muốn là khi
Tôi là một lập trình viên xuất sắc, rất giỏi!