7
Mam aplikacji, która korzysta z wielu baz danych. Kiedy obiekt instancji modelu znajduje się w pamięci, w jaki sposób określić, z której bazy danych pochodzi? W szczególności chciałbym to wiedzieć do zastosowania w metodzie klasy modelu.Pobierz obiekt bazy danych django obiekt został zapytany od
przykład:
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})
sprawdzenie http://stackoverflow.com/questions/9929629/how-to-get-the-database -where-a-model-instance-was-saved-to-in-django – okm
możliwy duplikat [Czy model django wie, z której bazy danych został załadowany i jak można uzyskać dostęp do tych informacji?] (http: // stackoverflow. com/questions/4146781/does-a-django-model-know-from-which-database-it-was-loaded-and-how-can-this-info) – Louis