下一個和以前的對象假設問答&站點。當在終點/q/<id2>
處打開問題時,還應提供指向下一個/q/<id1>
的鏈接,以前的問題是/q/<id3>
。假設表格按照pk值或時間戳順序排列。使用鏈接的列表來查找在Django
這可以通過創建一個像我現在使用低於該方法簡單地加以解決:
def next_q(self):
# Ques model contain all questions
# this method is a model method of Ques
all_q = Ques.objects.all()
q = None
count = 1
if count < all_q.count():
try:
q = all_q.get(pk=self.pk + count)
break
except ObjectDoesNotExist:
count += 1
return q
不過,我認爲這種操作是足夠昂貴,它查詢所有問題(Ques
對象)時請求一個問題/q/id
。
一種可能的方式我看到的是用鏈表下一個&以前的對象的ID可以被存儲在當前對象的想法。
有可能是在Ques
模型兩個場作爲這樣
class Ques(models.Model):
prev_q_id = models.IntegerField()
next_q_id = models.IntegerField()
這些每當創建了新的對象QUES更新,編輯,刪除。這確保我只會查詢一個單一的對象。但是,我想知道這是否是一種好方法。如果不是我能做什麼?