Как выбрать пользователей на основе их профиля

Решение jAndy, вероятно, лучше всего, но если вы не можете полагаться на фильтр, вы можете сделать что-то вроде:

var myArray = [
    {field: 'id', operator: 'eq', value: 'id'}, 
    {field: 'cStatus', operator: 'eq', value: 'cStatus'}, 
    {field: 'money', operator: 'eq', value: "money"}
];

myArray.remove_key = function(key){
    var i = 0, 
        keyval = null;
    for( ; i < this.length; i++){
        if(this[i].field == key){
            keyval = this.splice(i, 1);
            break;
        }
    }
    return keyval;
}
1
задан boatcoder 3 July 2010 в 20:52
поделиться

2 ответа

Оказывается, мне пришлось изменить шаблоны. Ошибка в Django auth.user. Когда код представления выглядит так:

@login_required
def test(request):
    a = User.objects.filter(pk=request.user.id).select_related('profile').get()
    return render_to_response('test.html', {'a':a,})

, а шаблон выглядит как

a.username {{ a.username }}<br />
a.get_profile.age {{ a.get_profile.age }}<br />

, a.get_profile игнорирует тот факт, что профиль был загружен с помощью select_related, и выполняет отдельный запрос для профиля.

Однако, если вы закодируете это как:

@login_required
def test(request):
    a = Profile.objects.filter(user=request.user).select_related('user').get()
    return render_to_response('peeks/test.html', {'a':a,})

и шаблон как:

a.user.username {{ a.user.username }}<br />
a.age {{ a.age }}<br />

, вы получите все одним нажатием, и когда вы отображаете 25 профилей на одной странице, это имеет большое значение.

0
ответ дан 2 September 2019 в 23:19
поделиться

Сделайте так, чтобы ваши объекты Q ссылались на profile__whatever и использовали их в User.objects.filter () .

2
ответ дан 2 September 2019 в 23:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: