相关疑难解决方法(0)

在Django 1.7中动态过滤ListView CBV

我已经阅读了关于动态过滤 ListView 的官方文档,但我仍然对如何实际使用它感到困惑.

我目前有一个简单的模型,我们称之为Scholarship:

class Scholarship(models.Model):
    title = models.CharField(max_length=255)
    submitted_date = models.DateField(auto_now=True, verbose_name='Date Submitted')
    EXPERIENCE_LEVEL_CHOICES = (
        ('A', 'Any'),
        ('S', 'Student'),
        ('G', 'Graduate')
    )
    experience_level = models.CharField(max_length=1, choices=EXPERIENCE_LEVEL_CHOICES, default='A')
Run Code Online (Sandbox Code Playgroud)

我有一个页面,我正在使用ListView显示所有这些奖学金:

views.py

from django.views.generic import ListView
from .models import Scholarship


class ScholarshipDirectoryView(ListView):
    model = Scholarship
    template_name = 'scholarship-directory.html'
Run Code Online (Sandbox Code Playgroud)

urls.py

from django.conf.urls import patterns, url

from .views import ScholarshipDirectoryView

urlpatterns = patterns('',
    url(r'^$', ScholarshipDirectoryView.as_view(), name='scholarship_directory'),
)
Run Code Online (Sandbox Code Playgroud)

我正在尝试在网站的主页上生成链接,该链接将返回此ListView的过滤版本.例如,如果有人点击"为研究生提供奖学金"链接,则只会显示奖学金experience_level='G'.

通过shell - >返回此查询集没有问题 Scholarship.objects.filter(experience_level__exact='G')

我只是不确定如何通过下拉列表或URL动态过滤ListView.不想使用插件,而是了解动态查询/过滤在Django中的工作原理.

python django listview get django-views

11
推荐指数
1
解决办法
8242
查看次数

标签 统计

django ×1

django-views ×1

get ×1

listview ×1

python ×1