Модель limit_choices_to = {'пользователь': пользователь}

Я исправил это, добавив в nginx.conf:

location /djangoApp {
    rewrite  ^/djangoApp/(.*) /$1 break;
    proxy_pass http://127.0.0.1:8888;
}

Благодаря этот обмен SO .

12
задан juliomalegria 31 January 2012 в 18:41
поделиться

5 ответов

Используйте threadlocals, если Вы хотите получить текущего пользователя, который редактирует эту модель. Промежуточное программное обеспечение Threadlocals помещает текущего пользователя в переменную всего процесса. Возьмите это промежуточное программное обеспечение

from threading import local

_thread_locals = local()
def get_current_user():
    return getattr(getattr(_thread_locals, 'user', None),'id',None)

class ThreadLocals(object):
    """Middleware that gets various objects from the
    request object and saves them in thread local storage."""
    def process_request(self, request):
        _thread_locals.user = getattr(request, 'user', None)

Проверьте документацию, как использовать классы промежуточного программного обеспечения. Затем где угодно в коде можно звонить

user = threadlocals.get_current_user
-1
ответ дан 2 December 2019 в 23:08
поделиться

Сама модель не знает, что что-либо о текущем пользователе кроме Вас может дать этому пользователю в представлении к форме, которая управляет объектами моделей (и в сбросе формы choices для необходимого поля).

При необходимости в этом на администраторском сайте - можно попробовать raw_id_admin наряду с django-granular-permissions (http://code.google.com/p/django-granular-permissions/, но я не мог быстро получить его работающий над моим django, но это, кажется, достаточно ново для 1,0 так...).

Наконец при тяжелой необходимости в selectbox в администраторе - затем необходимо будет взломать django.contrib.admin самостоятельно.

4
ответ дан 2 December 2019 в 23:08
поделиться

Я не уверен, что полностью понимаю точно, что Вы хотите сделать, но я думаю, что существует хороший шанс, что Вы доберетесь, по крайней мере, разделяют путь там с помощью пользовательского менеджера. В частности, не пытайтесь определить свои модели с ограничениями на текущего пользователя, но создать менеджера, который только возвращает объекты, которые соответствуют текущему пользователю.

0
ответ дан 2 December 2019 в 23:08
поделиться
1
ответ дан 2 December 2019 в 23:08
поделиться

Хм, я не полностью понимаю Вашего вопроса. Но если Вы не можете сделать этого, когда Вы объявляете модель, возможно, можно достигнуть того же самого с методами переопределения класса объектов, куда Вы "отправляете" пользовательский объект, возможно, запустите с конструктора.

-1
ответ дан 2 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

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