Django模板外键BooleanField:获取未读文章

时间:2017-06-05 17:09:22

标签: django

感谢您抽出宝贵时间。

我想为用户建立一个功能,以查看他们尚未阅读的帖子以及他们拥有的帖子。

我做了什么:我设法显示用户已经读过的内容。

我的问题:我无法向用户显示他或她没有阅读的内容。因为A读过的文章仍应保留为“未读”B.

我的模特:

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):
model = Posts
template_name = 'reading.html'
context_object_name = "data" 
paginate_by = 20

我的模板:

{% if "/read/" in request.path %}
    {% for info in data %}
        {% for read in info.readstatus_set.all %}
            {% if request.user == read.user %}
                <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>

            {% endif %}

        {% endfor %}
    {% endfor %}
{% else %}

    {% for info in data %}
        {# NEED HELP HERE, HOW DO I SHOW A UNREAD ARTICLE WHICH HAS BEEN READ BY ANOTHER USER FOR A NEW USER #} 
    {% endfor %}

{% endif %}

1 个答案:

答案 0 :(得分:0)

我弄清楚为什么我不能得到&#34;未读&#34;我尝试循环.readstatus_set.all时的功能。因为我有数据写入数据库而不使用Django,虽然我将每个帖子的读取默认值设置为False ----根本就没有记录。我需要找出如何将默认值应用于现有记录,但这是针对另一个主题。