2012-04-29 58 views
7

Tôi có một ứng dụng sử dụng nhiều cơ sở dữ liệu. Khi một đối tượng instance model nằm trong bộ nhớ, làm thế nào tôi có thể xác định được cơ sở dữ liệu mà nó đến từ đâu? Cụ thể, tôi muốn biết điều này để sử dụng trong một phương thức trên lớp mô hình.Nhận cơ sở dữ liệu đối tượng mô hình django được truy vấn từ

Ví dụ:

class book(Models.model): 
    newdate = models.DateField(default=date.today()) 
    type = models.CharField(
          max_length=30, 
          choices=BOOK_TYPE, 
          default = 'novel', 
          ) 
    def get_current_student(self): 
     if not hasattr(self,'_current_student'): 
      try: 
       self._current_student = clickerlog.objects.using(SELF.ORIGIN_DATABASE).get(book=self.pk,end__isnull = True).student 
      except: 
       self._current_student = none 
     return self._current_student 

class booklog(Models.model): 
    start = models.DateTimeField(
           default=datetime.now(), 
           verbose_name = 'start time' 
           ) 
    end = models.DateTimeField(null=True,blank=True,) 
    book = models.ForeignKey(book) 
    student = models.ForeignKey(student, 
           limit_choices_to = {'isactive':True}) 
+0

séc http://stackoverflow.com/questions/9929629/how-to-get-the-database -where-a-model-instance-was-saved-to-in-django – okm

+0

có thể trùng lặp của [Mô hình django có biết cơ sở dữ liệu nào được tải và thông tin này có thể được truy cập không?] (http: // stackoverflow. com/questions/4146781/does-a-django-model-know-from-which-database-it-was-loaded-and-how-can-this-info này) – Louis

Trả lời

19

Sau khi đào một litte tôi càng thấy nó:

self._state.db 
Các vấn đề liên quan