내 유스 케이스를 사용하려면 장고 프로젝트의 관리 사이트에서 여러 데이터베이스를 노출해야합니다. 다음장고 관리자에서 여러 데이터베이스 노출
class MultiDBModelAdmin(admin.ModelAdmin):
# A handy constant for the name of the alternate database.
using = 'other'
def save_model(self, request, obj, form, change):
# Tell Django to save objects to the 'other' database.
obj.save(using=self.using)
def delete_model(self, request, obj):
# Tell Django to delete objects from the 'other' database
obj.delete(using=self.using)
def get_queryset(self, request):
# Tell Django to look for objects on the 'other' database.
return super(MultiDBModelAdmin, self).get_queryset(request).using(self.using)
def formfield_for_foreignkey(self, db_field, request, **kwargs):
# Tell Django to populate ForeignKey widgets using a query
# on the 'other' database.
return super(MultiDBModelAdmin, self).formfield_for_foreignkey(db_field, request, using=self.using, **kwargs)
def formfield_for_manytomany(self, db_field, request, **kwargs):
# Tell Django to populate ManyToMany widgets using a query
# on the 'other' database.
return super(MultiDBModelAdmin, self).formfield_for_manytomany(db_field, request, using=self.using, **kwargs)
그리고 :
admin.site.register(Author, MultiDBModelAdmin)
admin.site.register(Publisher, PublisherAdmin)
othersite = admin.AdminSite('othersite')
othersite.register(Publisher, MultiDBModelAdmin)
예제의 문서 상태 : 여기 https://docs.djangoproject.com/en/dev/topics/db/multi-db/#exposing-multiple-databases-in-django-s-admin-interface
사용 된 코드입니다 :이 예는 두 개의 관리 사이트 설정이 링크를 따라하는 것을 않았다. 첫 번째 사이트에서 작성자 및 게시자 개체가 노출됩니다. 게시자 개체에는 해당 게시자가 게시 한 책을 보여주는 표 형식의 인라인이 있습니다. 두 번째 사이트는 인라인없이 게시자를 노출합니다.
다른 곳에서는 찾아 볼 수없는 것 같습니다. 어떻게 다른 '사이트'에 액세스합니까? 다른 '사이트'에 노출 된 표를 보려면 어떤 URL을 사용해야합니까? 뭔가 간단해야하지만, 어디서나 찾을 수 없습니다.
감사합니다. Alasdair! 이 작동합니다. – Chetan