Мне нужно вести инвентаризацию серверов и их модулей памяти &. Я создал три таблицы. Я хочу получить всю информацию о сервере, включая информацию о памяти и диске, и отобразить ее на одной странице.Несколько таблиц и модифицированных запросов
class Server(models.Model):
Name = models.CharField(max_length=25)
ServiceTag = models.CharField(primary_key=True,max_length=12) #Uniquely identifies each server
def __unicode__(self):
return u'%s %s ' % (self.Name, self.ServiceTag)
class MemoryModule(models.Model):
Manufacturer = models.CharField(max_length=15)
Size = models.CharField(max_length=15)
server = models.ForeignKey(Server, max_length=12)
mems = MemoryManager()
def __unicode__(self):
return u'%s %s' % (self.Manufacturer, self.Size)
class Drive(models.Model):
Manufacturer = models.CharField(max_length=15)
Size = models.CharField(max_length=15)
server = models.ForeignKey(Server, max_length=12)
drvs = DriveManager()
def __unicode__(self):
return u'%s %s %s %s %s' % (self.Manufacturer, self.Size)
я рассматривал, добавив следующие "менеджеры":
class MemoryManager(models.Manager):
def get_query_set(self):
return super(MemoryManager, self).get_query_set().filter(server='CC98361')
class DriveManager(models.Manager):
def get_query_set(self):
return super(DriveManager, self).get_query_set().filter(server='CC98361')
... так что следующий будет генерировать memorymodules & диски, связанные со значением службы тегов:
MemoryModule.mems.all()
Drive.drvs.all()
а. Это точный подход b. если да, то как бы я отображал «MemoryModule.mems.all() и Drive.drvs.all() в шаблоне?
Шаблон, указанный в ответе, возвращает сообщение об ошибке: Не удалось разобрать остаток: '()' from 'MemoryModule.mems.all()' ... в чем проблема, с которой я столкнулся все время : как отображать данные, созданные из двух (или более) разных таблиц в базе данных в одном шаблоне. –
Я супер-нуб, что значит "{" MemoryModule ": models.MemoryModule} в словарь" означает? Где это будет? Вид или модель. –
В представлении вы передаете словарь в шаблон. Для большинства просмотров это будет выполняться с помощью функции render_to_response: http://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response. Более подробное описание можно найти здесь: http://docs.djangoproject.com/en/dev/ref/templates/api/#compiling-a-string –