ありがとうございました。Djangoモデルに外部キーのデフォルト値を既存のレコードに適用
以前、私はこの質問How to Get Unread Posts for Usersを投稿しました。
問題は次のとおりです。この記事が既に別のユーザーによって読み取られているうちに、1人のユーザーが読んでいない記事を除外することはできません。
なぜ私はそれを行うことができないのかを理解しました。私はDjangoを使わずにデータベースに書き込んだデータを持っていますが、各投稿のデフォルトをFalseに設定しています。
次に、手動で1つの記事を管理者のユーザーに未読に設定すると、データベース内にこの特定の記事がこのユーザーによって読み取られていないというレコードが1つあります。
問題は、以下のようになります。
私はすべての既存のユーザーのためのデータベースを持っているすべての既存の記事の「未読」に設定するにはどうすればよいですか?
また、新しいユーザーが実際にそれを読んでいない限り、記事が未読のままになることはありますか?
あなたの便宜のため、ここにコードをコピーしました。
マイモデル:
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