수퍼 유저 자신의 장고 관리자 인라인을 변경할 수 없습니다.

Meilo

최근에 django 2.0.4에서 3.0.5로 업데이트했습니다.

다음 인라인을 가진 UserAdmin이 있습니다.

class PreferencesInline(admin.StackedInline):
    model = Preferences
    can_delete = False
    classes = ['collapse']

수퍼 유저로 로그인하면 인라인을 통해 다른 사용자의 기본 설정을 변경할 수 있지만 내 자신은 변경할 수 없습니다. 왜 그런 겁니까? django 2.0.4가 설치된 서버에서 다른 사용자 환경 설정을 변경할 수 있지만 인라인을 통해 자신의 환경 설정도 변경할 수 있습니다. 이 이상한 행동에 대한 설명을 찾을 수 없습니다 ...

편집 관리자에서 직접 기본 설정을 변경하려고 할 때도 동일한 동작이 적용되므로 인라인 문제가 아닙니다.

EDIT2 문제는 다음 미들웨어입니다. 문제를 해결하기 위해 어떻게 수정할 수 있는지 아이디어가 있습니까?

class UserLanguageMiddleware:
    """ Middleware to set user language """
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        if request.user.is_authenticated:
            user_language = request.user.profile.language
            activate(user_language)
        response = self.get_response(request)
        return response
Meilo

공식 Django의 조언에 따라 활성 언어명시 적으로 설정 하면 문제가 해결되었습니다.

settings.py :

LANGUAGE_COOKIE_NAME = 'language'

middleware.py :

class UserLanguageMiddleware:
    """ Middleware to set user language cookie """
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        if request.user.is_authenticated and not request.COOKIES.get(settings.LANGUAGE_COOKIE_NAME):
            # Set cookie
            response.set_cookie(settings.LANGUAGE_COOKIE_NAME, request.user.profile.language)
        elif not request.user.is_authenticated and request.COOKIES.get(settings.LANGUAGE_COOKIE_NAME):
            # Delete cookie
            response.delete_cookie(settings.LANGUAGE_COOKIE_NAME)
        return response

models.py

from django.dispatch import receiver
from django.contrib.auth.signals import user_logged_in
# Update user language on login
@receiver(user_logged_in)
def post_login(sender, user, request, **kwargs):
    user_language = user.profile.language
    translation.activate(user_language)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SQL Server : 테이블 디자인을 저장 / 변경할 수 없습니다.

분류에서Dev

phpList 관리자 패널에서 설정을 저장할 수 없습니다.

분류에서Dev

장고 관리자에서 어떻게 인라인을 동적으로 표시 할 수 있습니까?

분류에서Dev

비밀번호를 입력 할 수 없습니다. (Django 관리자 수퍼 유저 생성)

분류에서Dev

SQL Server 2008 : 오류가 아닌 테이블 디자인을 저장 / 변경할 수 없습니다.

분류에서Dev

저장된 속성 이니셜 라이저에서 공변 '자체'유형을 참조 할 수 없습니다.

분류에서Dev

아이템의 디자인을 변경할 수 없습니다

분류에서Dev

문자열을 변수에 저장할 수 없습니다.

분류에서Dev

gnuplot에서 라인 유형을 변경할 수 없습니다.

분류에서Dev

자신의 계정의 사용자 및 홈 폴더 이름을 변경하면 이제 관리자 권한을 잠금 해제 할 수 없습니다.

분류에서Dev

기본 관리자 (postgres)의 인코딩을 변경할 수 있습니까?

분류에서Dev

Windows 7에서 관리자는 환경 변수 및 가상 메모리 등을 변경할 수 없습니다.

분류에서Dev

postgres는 수퍼 유저 역할 변경을 허용하지 않으며 기본 사용자는 수퍼 유저가 아닙니다.

분류에서Dev

Windows 10은 관리자 권한을 잃고 설정을 변경하기 위해 관리자 암호를 삽입 할 수 없습니다.

분류에서Dev

AD를 ID 서버의 사용자 저장소로 사용하여 관리자가 아닌 계정으로 로그인 할 수 없습니다.

분류에서Dev

관리자 비밀번호를 변경할 수 없습니다.

분류에서Dev

접촉 할 인라인 블록 요소의 인접한 가장자리를 정렬 할 수 없습니다.

분류에서Dev

관리자이자 소유자인데도 더 이상 Windows 10의 모든 드라이브에 액세스 할 수 없습니다. 왜?

분류에서Dev

C ++-변수의 유효성을 확인할 때 인라인 std :: cerr을 호출 할 수 없습니다.

분류에서Dev

Wagtail 관리자에서 초과 확장을 사용할 수 없습니다.

분류에서Dev

로그인으로 사용자 설정을 변경할 수 없습니다. 그 이유는 무엇입니까?

분류에서Dev

VS2013 구성 관리자는 일부 프로젝트의 플랫폼을 변경할 수 없습니다.

분류에서Dev

VS2013 구성 관리자는 일부 프로젝트의 플랫폼을 변경할 수 없습니다.

분류에서Dev

Putty 구성 섹션의 설정을 변경할 수 없습니다 ( "저장"대신 "열기").

분류에서Dev

마운트 된 장치의 소유권을 변경할 수 없습니다.

분류에서Dev

세션 저장소를 자동으로 구성 할 수 없습니다. 구성을 확인하십시오 (세션 저장소 유형이 'null'임).

분류에서Dev

사용자 지정 관리 URL을 사용할 때 magento 관리자에 로그인 할 수 없습니다.

분류에서Dev

Ubuntu Mate 18.04의 기본 파일 관리자를 변경할 수 없습니다.

분류에서Dev

변수에 getDownloadUrl ()의 응답을 저장할 수 없습니다

Related 관련 기사

  1. 1

    SQL Server : 테이블 디자인을 저장 / 변경할 수 없습니다.

  2. 2

    phpList 관리자 패널에서 설정을 저장할 수 없습니다.

  3. 3

    장고 관리자에서 어떻게 인라인을 동적으로 표시 할 수 있습니까?

  4. 4

    비밀번호를 입력 할 수 없습니다. (Django 관리자 수퍼 유저 생성)

  5. 5

    SQL Server 2008 : 오류가 아닌 테이블 디자인을 저장 / 변경할 수 없습니다.

  6. 6

    저장된 속성 이니셜 라이저에서 공변 '자체'유형을 참조 할 수 없습니다.

  7. 7

    아이템의 디자인을 변경할 수 없습니다

  8. 8

    문자열을 변수에 저장할 수 없습니다.

  9. 9

    gnuplot에서 라인 유형을 변경할 수 없습니다.

  10. 10

    자신의 계정의 사용자 및 홈 폴더 이름을 변경하면 이제 관리자 권한을 잠금 해제 할 수 없습니다.

  11. 11

    기본 관리자 (postgres)의 인코딩을 변경할 수 있습니까?

  12. 12

    Windows 7에서 관리자는 환경 변수 및 가상 메모리 등을 변경할 수 없습니다.

  13. 13

    postgres는 수퍼 유저 역할 변경을 허용하지 않으며 기본 사용자는 수퍼 유저가 아닙니다.

  14. 14

    Windows 10은 관리자 권한을 잃고 설정을 변경하기 위해 관리자 암호를 삽입 할 수 없습니다.

  15. 15

    AD를 ID 서버의 사용자 저장소로 사용하여 관리자가 아닌 계정으로 로그인 할 수 없습니다.

  16. 16

    관리자 비밀번호를 변경할 수 없습니다.

  17. 17

    접촉 할 인라인 블록 요소의 인접한 가장자리를 정렬 할 수 없습니다.

  18. 18

    관리자이자 소유자인데도 더 이상 Windows 10의 모든 드라이브에 액세스 할 수 없습니다. 왜?

  19. 19

    C ++-변수의 유효성을 확인할 때 인라인 std :: cerr을 호출 할 수 없습니다.

  20. 20

    Wagtail 관리자에서 초과 확장을 사용할 수 없습니다.

  21. 21

    로그인으로 사용자 설정을 변경할 수 없습니다. 그 이유는 무엇입니까?

  22. 22

    VS2013 구성 관리자는 일부 프로젝트의 플랫폼을 변경할 수 없습니다.

  23. 23

    VS2013 구성 관리자는 일부 프로젝트의 플랫폼을 변경할 수 없습니다.

  24. 24

    Putty 구성 섹션의 설정을 변경할 수 없습니다 ( "저장"대신 "열기").

  25. 25

    마운트 된 장치의 소유권을 변경할 수 없습니다.

  26. 26

    세션 저장소를 자동으로 구성 할 수 없습니다. 구성을 확인하십시오 (세션 저장소 유형이 'null'임).

  27. 27

    사용자 지정 관리 URL을 사용할 때 magento 관리자에 로그인 할 수 없습니다.

  28. 28

    Ubuntu Mate 18.04의 기본 파일 관리자를 변경할 수 없습니다.

  29. 29

    변수에 getDownloadUrl ()의 응답을 저장할 수 없습니다

뜨겁다태그

보관