siparişi vererek id artı n durumları tarafından örneğini almak (mesajlar onların zaman damgası göre sıralanır). Bir konuşma yaparken n mesajları yüklüyorum. Eski mesajlar talep üzerine ajax isteği ile yüklenmelidir.Django sorgu kümesi: Bir <strong>Konuşma</strong> ve <strong>İleti</strong> sınıf var
Benim ilk bakış QuerySet geçerli:
Benim ajax görünümündemessages = conversation.message_set.all()[:settings.INITIAL_MSG_LOAD]
, ben eski görüntülenen mesaj (oldest_id) ait pk var.
messages = []
append_msg = False
append_counter = settings.INITIAL_MSG_LOAD
for message in conversation.message_set.all():
if append_msg:
messages.append(message)
append_counter -= 1
if append_counter == 0:
break
if message.id == oldest_id:
append_msg = True
Bu isteklerin her ikisi için veritabanına gönderilen SQL sorgularının gerçekten farkında değilim.
Veritabanı 2. istekte tüm iletileri döndürüyor mu? Ve pk verilen sonraki n iletileri almak için daha verimli bir yolu var mı?
Çözümünüzde sıralı kimlikler gerekiyor. Ancak, kimlik yerine zaman damgasıyla filtreleme, aynı sorgulama ile sonuçlanmalıdır. –