2017-11-20 4 views
0

현재 내 관리자는 admin 사용자가 만들고 "여성"인터페이스로 들어가서 발췌 부분을 첨부 할 수있는 많은 발췌 부분이 있습니다. 사용자가 발췌문을 작성하고 관계를 만들기 위해 "여성"인터페이스로 들어가기보다는 발췌 부분에 속한 여성을 선택할 수있는 발췌 관리자에 선택 필드를 추가 할 수 있습니까?장고 관리 인터페이스에서 관련 필드 추가

class Excerpt(models.Model): 
    extract = models.CharField(max_length=2000, null=True, blank=True) 
    audio_url = models.IntegerField(null=True, blank=True) 
    start_time = models.IntegerField(null=True, blank=True) 
    end_time = models.IntegerField(null=True, blank=True) 
    def __unicode__(self): 
     return self.extract 

class Women(models.Model): 
    name = models.CharField(max_length=100) 
    location = models.ForeignKey(Location, null=True, blank=True) 
    excerpt = models.ManyToManyField(Excerpt, blank=True) 
+0

하나의 발췌문에 여러 명의 여성이 연관 될 수 있습니까? 여성이 여러 발췌 부분을 가질 수는 있지만 그 반대가 아닌 것처럼 보이는 것이므로 여성과 발췌 모델 간의 외래 키 관계 선박을 찾고 있습니다. – scharette

+0

@scharette 좋은 지적. 그것은 더 의미가 있습니다. – byrdr

답변

2

당신은 내가에서 지적하는 관계를 변경 고려 commen ts이면 manytomany 관계를 Women에서 먼저 삭제 한 다음 Excerpt 모델을 약간 변경해야합니다. 당신이 원하는 것은

class Excerpt(models.Model): 
    women = models.ForeignKey(Women, ...) 

다른 대답은 올바른 접근하지만 잘못된 실행을했다, 그런 WomenExcerpt 모델에서 외부 키를 가지고 있습니다, 여기에 귀하의 경우 인라인을 구현하는 올바른 방법입니다,

class ExcerptInline(admin.TabularInline): 
    model = Excerpt 


class WomenAdmin(admin.ModelAdmin): 
    inlines = [ExcerptInline] 

당신은 마지막으로 전체를 등록 할 지금

admin.site.register(Women, WomenAdmin) 

, 여러분의 필요에 모든을 만들어, 그러나 이들은 당신이 내 의견으로는 무엇을 찾고 있는지에 대한 기초입니다.

0

당신이

class ExcerptInline(admin.TabularInline): 
    model = Women.excerpt.through 
    extra = 0 
    show_change_link = True 

    def has_add_permission(self, request, obj=None): 
     return True 


class ExcerptAdmin(admin.ModelAdmin): 
    list_display = ['start_time', 'end_time'] 
    inlines = [ExcerptInline] 

class WomenAdmin(admin.ModelAdmin): 
    list_display = ['name'] 

마지막으로 추가 발췌 모델에서 여성을 선택하는 TabularInline을 사용할 수 있습니다

admin.site.register(Women, WomenAdmin) 
admin.site.register(Excerpt, ExcerptAdmin) 
+0

관리자가 어떻게 구성됩니까? 'MediaDefiningClass'개체가 반복 가능한 오류가 아닙니다. – byrdr

+0

admin.site.register (여성, 여성 관리자) admin.site.register (발췌, ExcerptAdmin) –

관련 문제