2014-12-18 2 views
0

저는 Person 클래스와 Contract 클래스를 가지고 있습니다. 관리자 인터페이스에서 Person 페이지로 이동했을 때 Person 클래스에있는 데이터뿐만 아니라 Person과 관련된 계약을 표시하고 싶습니다.Django : 관리자 인터페이스의 클래스 가입

그래서 먼저 계약서에 내가 가지고있는 데이터를 보여줄 수 있습니까?

둘째로, 나는 그 사람과 관련된 계약서를 어떻게 보여줄 수 있습니까? 나는 각 개인의 모든 계약을 해당 개인과 관련된 계약 만 보여주고 싶지 않습니다.

감사합니다.

class Person(models.Model): 
    name = models.CharField(max_length=32, verbose_name=_(u"Name")) 
    surname = models.CharField(max_length=32, verbose_name=_(u"Surname")) 
    address = models.CharField(max_length=32, verbose_name=_(u"Address")) 

class Contract(models.Model): 
    person = models.ForeignKey(Person) #person hired 
    contract = models.OneToOneField('self', blank = True, null = True) #allows to extend a contract 
    project = models.ForeignKey(Project, blank = True, null = True) #related project 
+0

당신은, 장고의 관리자 동작을 수정하는 추가 필드를 소개하고 추가적인 외부 데이터를 조회 할 수 있습니다. 귀하의 질문은 공식 문서, 구체적으로 목록보기의 적용을받습니다 : https://docs.djangoproject.com/en/1.7/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display If 변경/추가 양식에 대한 관계를 수정하는 경우, 인라인 모델을 찾고 있습니다. https://docs.djangoproject.com/en/1.7/ref/contrib/admin/#inlinemodeladmin-objects – petkostas

+1

튜토리얼 읽기? 이것은 명시 적으로 admin에서 이것을 수행하는 방법을 보여줍니다 (설문 조사 질문 및 답변 예제 사용). –

+0

이것은 처음 의심되는 Django 프로젝트이기 때문에 미안합니다. 나는 두 가지 접근법을 시도했다 : admin : Person'contract__attribute'의 list_display를 추가하면 작동하지 않는 것처럼 보입니다. In Model : Contract 속성을 호출하는 Person에 메소드를 삽입했습니다. 하지만 나는 투표 결과를 찾지 못해 여기에 갇혀있다. ( – loar

답변

0
class ContractInline(admin.TabularInline): 
    model = Contract 
    extra = 1 

@admin.register(Person) 
class Person(admin.ModelAdmin): 
    list_filter = ["........"] 
    list_display = ["........"] 
    inlines = [ ContractInline, ]