контекст в фильтре запросов? - PullRequest
0 голосов
/ 14 декабря 2009

У меня очень простая модель контакта. Модель имеет следующие поля:

class Entry(models.Model): 
    name = models.CharField(max_length=64, unique=False)
    organization = models.CharField(max_length=100, unique=False, blank=True, null=True)
    team = models.CharField(max_length=64, unique=False, blank=True, null=True)
    position = models.CharField(max_length=64, unique=False, blank=True, null=True)
    address = models.CharField(max_length=130, unique=False, blank=True, null=True)
    ...  

    def __unicode__(self):
        return u'%s' % self.name

У меня есть разные шаблоны для отображения / редактирования отдельных записей. Я хотел бы сделать следующее. При просмотре отдельной записи я бы хотел, чтобы пользователь мог щелкнуть «организацию» и быть перенаправлен на шаблон, в котором перечислены все существующие записи в БД этой организации. Я создал шаблон, но не уверен в коде представления.

Мне кажется, что-то вроде этого, но я не думаю, что это законно.

def display_organization(request):
    records = Entry.objects.filter(organization__exact=Context)
    t = get_template('org_list.html') 
    html = t.render(Context({'records': records}))
    return HttpResponse(html)

Кто-нибудь может помочь?

Ответы [ 2 ]

3 голосов
/ 14 декабря 2009

Возможно, вы хотите, чтобы карта URL display_organization включала параметр для организации:

('^organization/(?P<org_name>.+)$', 'myapp.views.display_organization'),

При этом ваша функция display_organization должна также принимать параметр org_name:

def display_organization(request, org_name):
    records = Entry.objects.filter(organization__exact=org_name)
    html = get_template('org_list.html').render({'records': records})
    return HttpResponse(html)
0 голосов
/ 15 декабря 2009

Вы делаете это довольно сложным, в зависимости от URL. Хорошо, если так работает только одна или две вещи.

Я бы сказал, будьте проще и просто используйте request.GET

def display_organization(request):
    records = Entry.objects.filter(organization__iexact=request.GET['organization'])
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...