2013-02-04 6 views
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 데이터베이스입니다.

+0

PyCharm에서 단계별로 진행되는 동안 타이밍과 관련이있는 것으로 보입니다. queryset() 메서드에서 반환을 중단하고 save_model()에 도달 할 때까지 각 행을 한 단계 씩 실행하면 작동하는 것처럼 보입니다 (열 중 하나에서 잘린 데이터에 대한 오류가 발생합니다. 관련된 경우). 그러나 queryset()에서 중단하지 않으면 절대로 save_model()에 도달하지 않습니다. 사실 문제가되는 문제는 options.py (최신 Django 1.4)의 1034 행에 있습니다. form = ModelForm (request.POST, request.FILES, instance = obj) 따라서 SOMETIMES 형식을 만들면 오류가 발생합니다. – machomeautoguy

+0

추가 정보 - 폼 유효성 검사의 버그 인 것 같습니다. 고유 한 필드의 유효성을 검사 할 때 잘못된 데이터베이스가 고유성을 쿼리하는 데 사용되는 경우가 있습니다. 나는 그 (것)들을 있던 2 개의 분야에 "유일한 = 진실한"계산서를 제거하고 지금 문제를 지나가고있다. – machomeautoguy

답변