我已經將來自不同模型的2個查詢集合到列表中,並使用分頁顯示爲單個列表。Django多個查詢集合到一個分頁
問題是從列表中的對象根據它們創建的模型按分頁顯示。
我怎麼能修復列表,以便當從模型中創建一個新的對象。即使最近創建的對象來自不同的模型,它也會顯示在最近創建的對象之後。
舉例如下。我有用戶的白板和用戶評論的組合查詢集。如果最近創建了新的白板對象,我會創建另一條評論。註釋將由分頁白板的對象,而不是被顯示與所有的其他意見進一步下跌的分頁,因爲它是在一個不同的模式
我希望你能明白我的意思後顯示什麼我想要實現我:)模塊的
零件
class WhiteBoard(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
picture = models.OneToOneField('Picture',related_name='picture',blank=True,null=True)
def __unicode__(self):
return self.name
class Comment(models.Model):
created = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User)
body = models.TextField()
picture = models.ForeignKey(Picture)
views.py
@login_required
def archive(request):
user = User.objects.get(username=request.user)
person = Person.objects.get(user=user)
users = User.objects.filter(pk__in=person.following.all().values_list('user__pk',flat=True))
picture = whiteboard .objects.filter(user__in=users).order_by("-created")
comment = Comment.objects.filter(user__in=users).order_by("-created")
posts= list(chain(picture,comment))
paginator = Paginator(posts, 5)
try: page = int(request.GET.get("page", '1'))
except ValueError: page = 1
try:
posts = paginator.page(page)
except (InvalidPage, EmptyPage):
posts = paginator.page(paginator.num_pages)
return render(request,'archive.html',{'picture':picture,'comment':comment,'posts':posts})
archive.html
{% for post in posts.object_list %}
{{post.name }}
<br>
{{post.body}}
{% endfor %}
<!-- Next/Prev page links -->
{% if posts.object_list and posts.paginator.num_pages > 1 %}
<div class="pagination" style="margin-top: 20px; margin-left: -20px; ">
<span class="step-links">
{% if posts.has_previous %}
<a href= "?page={{ posts.previous_page_number }}">newer entries << </a>
{% endif %}
<span class="current">
Page {{ posts.number }} of {{ posts.paginator.num_pages }}
</span>
{% if posts.has_next %}
<a href="?page={{ posts.next_page_number }}"> >> older entries</a>
{% endif %}
</span>
</div>
{% endif %}
</div>
@catherine我只是與周圍碴組合:) – donkeyboy72 2013-03-24 09:28:45
@catherine我想添加一個字體到你說的它的車,我得到這個錯誤無法控制垂直字符串浮動: – donkeyboy72 2013-03-24 09:36:22
我不知道這是否會有所幫助,它對數據進行排序。 http://stackoverflow.com/questions/431628/how-to-combine-2-or-more-querysets-in-a-django-view – catherine 2013-03-24 09:42:32