【问题标题】:How to filter a particular category in Django for the blog?如何在 Django 中为博客过滤特定类别?
【发布时间】:2020-09-16 17:21:41
【问题描述】:

如何在 Django 中为博客过滤特定类别? 我写了如下代码,大家可以主要关注views.py

urls.py-

urlpatterns = [
    path('', views.homepage, name="home"),
    url(r'^News/', views.News, name="News"),
    url(r'^Android/', views.android, name="android"),
    url(r'^PC/', views.PC, name="PC"),
    url(r'^MachineLearning/', views.MachineLearning, name="Offers"),
    url(r'^Offers/', views.Offers, name="Offers"),
    url(r'^Gaming/', views.Gaming, name="Gaming"),
    url(r'^Others/', views.Others, name="Others"),
    path('create/', views.article_create, name="create"),
    url(r'^(?P<slug>[\w-]+)/$', views.article_detail, name="detail"),
    url(r'^(?P<slug>[\w-]+)/edit/', views.article_update, name="post_edit"),
    url(r'^(?P<slug>[\w-]+)/edit/post_edit', views.article_update, name="post_edit"),
    url(r'^(?P<slug>[\w-]+)/delete/', views.article_delete, name="delete_post"),
]

models.py-

class Home(models.Model):
    title = models.CharField(max_length=100)
    tag1 = models.CharField(max_length=100, default='Tech')
    tag2 = models.CharField(max_length=100, default='Android')
    tag3 = models.CharField(max_length=100, default='Best')
    tag4 = models.CharField(max_length=100, default='News')
    tag5 = models.CharField(max_length=100, default='PC')
    slug = models.SlugField(max_length=250, null=True, blank=True)
    body = models.TextField()
    CATEGORY_CHOICES = [
        ('NEWS', 'News'),
        ('ANDROID', 'Android'),
        ('PC', 'PC'),
        ('Machine Learning', 'Machine Learning'),
        ('OFFERS', 'Offers'),
        ('OTHERS', 'Others'),
        ('GAMING', 'Gaming'),
    ]
    category = models.CharField(
        max_length=20,
        choices=CATEGORY_CHOICES,
        default='OTHERS',
    )

    link = models.URLField(blank=True)
    date = models.DateTimeField(auto_now_add=True)
    pub_date = models.DateTimeField(auto_now_add=True)
    thumb = models.ImageField(default='default.png', blank=True)
    thumbnail = CloudinaryField('image')
    author = models.ForeignKey(User, default=None, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

    def snippet(self):
        return self.body[:100]+'...'

    def get_absolute_url(self):
        return '/' + self.title

views.py-

def Others(request):
    homeblog_list = Home.objects.all().order_by('-date')
    paginator = Paginator(homeblog_list, 10)
    page = request.GET.get('page')
    homeblog = paginator.get_page(page)
    return render(request, 'home/Others.html', {'articles': homeblog})

现在,在 views.py 中,我只想获取 这个函数中的“Others”类别。 怎么做。我应该传递什么参数?

【问题讨论】:

    标签: django django-models django-forms django-views django-orm


    【解决方案1】:

    使用filter()

    Home.objects<b>.filter(category='OTHERS')</b>.order_by('-date')

    【讨论】:

      猜你喜欢
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      • 2016-04-19
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多