2011-09-16 3 views
0

를 사용하여 항목을 제한하기 : MyApp를에/Models.py어떻게이 개 모델이 외래 키

class Foo(models.Model): 
    place = models.CharField(max_length=200) 
    foo_admin = models.ForeignKey(User, limit_choices_to={'is_staff': True}) 


class Fighter(models.Model): 
    foo = models.ForeignKey(Foo,limit_choices_to={'foo_admin': currentuser}) 

을 'currentuser'또는 (사용자 이름)를 얻을 수 및 외래 키의 선택을 제한하는 방법이 있나요? 즉, 'currentuser'가 Foo에 저장된 foo_admin과 동일한 경우에만 Fighter가 Fighter를 표시합니다.

+0

한계는 어떻게됩니까? 특정 번호로? – WTK

+0

choise를 한 사용자 (즉, 현재 사용자)로 제한하십시오. 나는 분명하다. – vnayak01

답변

0

모델에서 그런 일을하는 것은 불가능합니다. 뷰 사용자 정의 필터에 다음과 같은 내용이 필요합니다. .filter(foo__foo_admin = reguest.user). 그리고 다음과 같이 메소드를 통해 현재 사용자를 검색해야하기 때문에 관리 인터페이스에서 수행하기가 더 어렵습니다.

class Example(admin.ModelAdmin): 

def get_form(self, request, obj=None, **kwargs): 
    form = super(Example, self).get_form(request, obj, **kwargs) 
    form.current_user = request.user 
    return form