0
여러 데이터베이스와 함께 Admin을 사용하는 경우 1.4 documentation에 따르면 ModelAdmin
하위 클래스에 5 개의 메소드 만 구현하면됩니다. 추천 된 방법으로 모두 5를 무시했습니다. 데이터베이스 검색은 문제없이 작동합니다. 여러 데이터베이스의 장고 관리자
save_model()
은 오류가 발생하기 전에 호출되지 않으므로 어딘가에 도달하기 전에 어딘가에 올바른 데이터베이스를 "성공적으로"사용하지 못하는 어딘가에 있습니다.
누구나 아는 것이 있습니까? 여기 내 ModelAdmin
클래스의 :
class TransactionAdmin(admin.ModelAdmin):
using = "salesdb"
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 queryset(self, request):
# Tell Django to look for objects on the 'other' database.
return super(TransactionAdmin, self).queryset(request).using(self.using)
def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
# Tell Django to populate ForeignKey widgets using a query
# on the 'other' database.
return super(TransactionAdmin, self).formfield_for_foreignkey(db_field, request=request, using=self.using, **kwargs)
def formfield_for_manytomany(self, db_field, request=None, **kwargs):
# Tell Django to populate ManyToMany widgets using a query
# on the 'other' database.
return super(TransactionAdmin, self).formfield_for_manytomany(db_field, request=request, using=self.using, **kwargs)
은 내가지고있어 오류는 다음과 같습니다
(1146, "Table 'django_dev._Transactions' doesn't exist")
django_dev
은 기본 데이터베이스가 아닌 sales
데이터베이스입니다.
PyCharm에서 단계별로 진행되는 동안 타이밍과 관련이있는 것으로 보입니다. queryset() 메서드에서 반환을 중단하고 save_model()에 도달 할 때까지 각 행을 한 단계 씩 실행하면 작동하는 것처럼 보입니다 (열 중 하나에서 잘린 데이터에 대한 오류가 발생합니다. 관련된 경우). 그러나 queryset()에서 중단하지 않으면 절대로 save_model()에 도달하지 않습니다. 사실 문제가되는 문제는 options.py (최신 Django 1.4)의 1034 행에 있습니다. form = ModelForm (request.POST, request.FILES, instance = obj) 따라서 SOMETIMES 형식을 만들면 오류가 발생합니다. – machomeautoguy
추가 정보 - 폼 유효성 검사의 버그 인 것 같습니다. 고유 한 필드의 유효성을 검사 할 때 잘못된 데이터베이스가 고유성을 쿼리하는 데 사용되는 경우가 있습니다. 나는 그 (것)들을 있던 2 개의 분야에 "유일한 = 진실한"계산서를 제거하고 지금 문제를 지나가고있다. – machomeautoguy