참으로 나가는 길이며, 다음은 내가 그것을했을 완벽한 방법입니다. 이 후
class A(models.Model):
....
class B(models.Model):
a = models.ManyToManyField(A,through = 'C', db_table = 'customtablename')
class C(models.Model):
a = models.ForeignKey(A,db_column='customcolumnname')
b = models.ForeignKey(B,db_column='secondcustomcolumnname')
관리 콘솔에 표시를위한, 당신은 모델이 동시에 변경을 할 수 있도록 인라인을 사용해야합니다. 할 수 국지적 인 방법으로 (내가 다시 선택/요구 사항의 문제라고 생각한다) 이이며,이 모델이있는 등록 할 수 있습니다 admin.py
class ABInline(admin.TabularInline):
model = B.a.through
class AAdmin(admin.ModelAdmin):
inlines = [ABInline,]
class BAdmin(admin.ModelAdmin):
inlines = [ABInline,]
exclude = ('a',)
admin.register.site에서
(B, BAdmin)
이제까지 당신이 원하는 모델.
감사합니다. 그러나 나는 'through'를 사용할 때 필수적이라고 생각하는 디스플레이를 위해 몇 가지를 추가했습니다. – Akshay
"through"모델을 만들 필요없이 이것을 수행 할 수있는 방법이 있습니까? ManyToMany 중개 테이블에 사용자 지정 외래 키 열을 갖기 위해 노력하고 있습니다. ManyToManyField가 db_column을 인수로 삼는 방법이 있습니까? –
@klandshome 항상 방법이 있습니다. 좋은 방법이 있습니까? 기필코 아니다. 당신은'에 직접 db_column을 설정할 수 있습니다. . through. '모델 정의 (예 :'class_prepared' 신호) 이후에 변경되지만 다른 코드가 변경하기 전에 모델을 사용하지 않을 것이라는 보장은 없습니다. –
knbk