我正在編寫一個腳本,我希望從訪問的網站獲取每次出現的值。從Django查詢中獲取非唯一值
首先,我得到訪問的網站:
sd = SessionData.objects.filter(session_id__mlsession__platform__exact=int('2'))
result = sd.values('last_page')
然後我拿到我期待值:
[{'last_page': 10L}, {'last_page': 4L}, {'last_page': 10L}]
就這樣,我想和10L的頁面作爲一個id有雙4L的重量,因爲它出現了兩次。
我嘗試從列表中的值:
wordData = KeywordData.objects.filter(page_id__in=result)
但當時我只得到唯一值:
[<KeywordData: 23>, <KeywordData: 24>, <KeywordData: 8>]
那裏我想要的結果將是:
[<KeywordData: 23>, <KeywordData: 24>, <KeywordData: 8>, <KeywordData: 23>, <KeywordData: 24>]
我設法得到一個唯一列表的唯一方法是迭代for循環,但這不是一個真正的選擇我正在處理的數據有數百萬條記錄。
django中的「__in」過濾器是否僅返回唯一條目?有沒有一種方法可以正確輸出「django」?
非常感謝您的幫助!
編輯:相關機型:
class KeywordData(models.Model):
page = models.ForeignKey(Page, db_column='page_id', related_name='page_pageid', default=None)
site = models.ForeignKey(Page, db_column='site_id', related_name='page_siteid', default=None)
keywords = models.CharField(max_length=255, blank=True, null=True, default=None)
class MLSession(models.Model):
session = models.ForeignKey(Session, null=True, db_column='session_id')
platform = models.IntegerField(choices=PLATFORM_CHOICE)
visitor_type = models.IntegerField(default=1)
class SessionData(models.Model):
session = models.ForeignKey(Session, db_column='session_id', on_delete=models.CASCADE)
site = models.ForeignKey(Site, db_column='site_id', db_index=True, default=None, null=True)
last_page = models.ForeignKey(Page, db_column='last_page_id', default=None, null=True, related_name='session_last_page')
first_page = models.ForeignKey(Page, db_column='first_page_id', default=None, null=True, related_name='session_first_page')
的表格會議和頁在它們的ID,這是自動遞增的術語僅提及。
我想看看會話的最後一頁,因此只需要看看last_page_id,並從各個頁面獲取關鍵字。如果同一頁面通常是最後一頁,我想增加更多的權重,如前所述。
讓我知道是否需要更多信息,並再次感謝!
請出示你的'SessionData'和'KeywordData'模式 –
我現在又增加了他們。 :) –