按模型字段过滤,Django

时间:2014-09-24 04:12:16

标签: django python-2.7 django-models

我有一个模型可以创建一篇文章,我希望它具有“国家/地区”的价值。和'类别。'我希望能够按这些值进行过滤。因此,如果有人点击该国家/地区,它将返回该国家/地区的所有文章,并且可以按类别进一步过滤。

模特:

class Article(models.Model):
    """Represents a wiki article"""
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=50, unique=True)
    text = models.TextField()
    author = models.ForeignKey(User)
    is_published = models.BooleanField(default=False, verbose_name="Publish?")
    created_on = models.DateTimeField(auto_now_add=True)
    objects = models.Manager()
    published = PublishedArticlesManager()
    country = models.ChoiceField(max_length=100)
    category = models.CharField(max_length=100)

我想要做的是使用此网址:

url(r'^country/(?P<country\w+)' , 'wiki.views.country',
        name = 'wiki_country'),

其中country来自用户点击链接,然后该链接返回一个页面,其中包含与该国家/地区的文章相对应的文章

这是一个目前列出所有文章的模板片段

{% if object_list %}

    <h2 class="articlePageTitle">All Articles</h2>
    <h3>Filter by country</h3>
    <h3>Filter by category</h3>

    <ul>
        {% for article in object_list %}
        <li>
            <a href="{% url wiki_article_detail article.slug %}">{{ article.title }}</a>
        </li>
{% endfor %}
    </ul>

我想我可以在模板标记中添加过滤器,但我不确定在视图中要做什么。

1 个答案:

答案 0 :(得分:0)

&#34; Article.objects.filter(国家= COUNTRY_NAME)&#34;将使用country = country_name返回所有Article对象。

相关问题