2014-04-18 1 views
0

내 모델은 다음과 같습니다 : 내 admin에서django에서 manytomanyfield를 admin에 등록하는 방법은 무엇입니까?

class Search(models.Model): 
    user = models.ForeignKey(User) 
    regions = models.ManyToManyField(Region) 

class Region(models.Model): 
    name = models.CharField(max_length=100") 

을 내가 Search modelRegion model, 내가 Region model에서하여 Search modelUser datasearch and user data을보고 싶어 을 등록 할 때. 관리자의 list_displayinlines에있는 하나는 ForeignKey이고 하나는 ManytoManyField이므로이 작업을 수행하는 방법이 명확하지 않습니다. 도움 훨씬 쉽게 지역 관리 화면의 인라인에 사용자 데이터를 볼 얻을 수 될 수 없습니다

감사

+0

불행히도이 동작은 django가 기본적으로 지원하지 않습니다. 나는 믿지 않는다. 그러나 나는 틀릴 수도있다. 나는 처음 시작했을 때와 똑같은 것을 시도해 보았고 릴리즈 노트에서 어떤 업데이트도 발견하지 못했습니다. 그러나 나는 주위를 파고 당신을 위해 해킹을 알아낼 수 있는지 알아 보겠습니다. – skzryzg

답변

0

을 이해할 수있을 것이다. 아래는 괜찮은 출발점입니다.

from django.contrib import admin 
from django.contrib.auth.models import User 
from .models import Search, Region 

class UserInline(admin.TabularInline): 
    model = User 

class SearchAdmin(admin.ModelAdmin): 
    inlines = [ 
     UserInline, 
    ] 

class SearchInline(admin.TabularInline): 
    model = Search 

class SearchRegionsInline(admin.TabularInline): 
    model = Search.regions.through 

class RegionAdmin(admin.ModelAdmin): 
    inlines = [ 
     SearchRegionsInline, 
     SearchInline, 
    ] 

당신은 지역 관리 화면에서 사용자 정보를 편집 설정하는 경우, 당신은 SearchInline에 대한 사용자 지정 양식을 만들 것입니다 그래서 그것은 User 모델의 필드가 다음의 값을 채 웁니다 __init__ 인스턴스가 전달되면

관련 문제