非常感謝您抽出寶貴時間。Django將模型外鍵默認值應用於現有記錄
此前,我發佈了這個問題,How to Get Unread Posts for Users。
問題是:我無法過濾掉這篇文章已經被另一個用戶閱讀過的文章。
我想出了爲什麼我不能這樣做 - 因爲我有數據寫入數據庫而不使用Django,儘管我將每個帖子的讀取默認設置爲False ----根本沒有記錄。
然後,我手動將一篇文章設置爲未讀取到Admin中的用戶,一切正常,因爲現在在數據庫中有一條記錄,指出此用戶尚未讀取此特定文章。現在
的問題是:
如何設置「未讀」爲每個現有的文章,我在數據庫中所有現有的用戶?
除非新用戶真正閱讀它,否則文章如何保持每個新用戶的未閱讀?
爲了您的方便,我將代碼複製到此處。
我的模型:
class Posts(models.Model):
title = models.CharField(max_length=255)
content_url = models.URLField(unique=True)
content = models.CharField(max_length=255)
post_date = models.DateField(default="2999-12-12")
另一個
class readstatus(models.Model):
reading_status = models.BooleanField(default=False)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
article = models.ForeignKey(Posts, on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
筆者認爲:
class DailyReading(ListView):
template_name = 'reading.html'
context_object_name = "data"
paginate_by = 20
def get_queryset(self):
if self.kwargs['status'] == "read":
queryset = piaoyou.objects.filter(readstatus__reading_status=True,readstatus__user=self.request.user)
return queryset
else:
queryset= Posts.objects.filter(readstatus__reading_status=False,readstatus__user=self.request.user)
return queryset
我的模板:
{% for info in data %}
<quoteblock>
<ul>
<li><a href="{{ info.get_absolute_url }}">{{ info.title }}
<footnote></footnote>
</a>{{ info.post_date }}</li>
<footnote>{{ info.get_abstract_content }}</footnote>
</ul>
</quoteblock>
{% endfor %}
你可以接受你自己的答案。 – e4c5