1
특정 사용자의 관리 앱에서 외래 키로 옵션을 제한하려고합니다 (제한하려는 필드를 학교라고 함) . 내 코드는 다음과 같습니다. 불행히도 (이름을 클릭하여) 학생을 편집하려고 할 때 두 가지 문제점 (아래 언급)이 있습니다. 학교에 대한ModelAdmin의 외래 키 옵션을 제한하면 "올바른 선택 항목을 선택하십시오."
1. 디폴트 값은 -
할수 있도록 팝업
내가 드롭 다운 메뉴에서 올바른 학교를 선택하고가 선택 말하는 내가 학교 필드에 오류가 저장하려고 유효한 선택. 이 선택은 이용 가능한 선택 사항 중 하나가 아닙니다. 이는 모습입니다
내가 방법을
def formfield_for_foreignkey(self, db_field, request, **kwargs):
모든 작업을 제거하지만 내가 외래 키를 제한 할 수없는 경우 이제
class modelStudentAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super(modelStudentAdmin, self).get_queryset(request)
if request.user.is_superuser:
return qs
else:
schoolInstance = modelSchool.objects.get(user=request.user)
qs = modelStudent.objects.filter(school=schoolInstance)
return qs
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if request.user.is_superuser:
return super(modelStudentAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
#Not superuser only staff
if db_field.name == 'school':
t = modelSchool.objects.filter(user=request.user).values_list("school_name",flat=True)
kwargs['queryset'] = t
return super(modelStudentAdmin,self).formfield_for_foreignkey(db_field, request, **kwargs)
있다. 내가 뭘 잘못하고 있을지에 대한 제안?
감사합니다. –