서버 및 메모리 모듈 인벤토리를 유지해야합니다. & 드라이브. 나는 세 개의 테이블을 만들었습니다. 나는 메모리 및 드라이브 정보를 포함하여 서버에 관한 모든 정보를 검색하여 한 페이지에 표시 할 수 있기를 원합니다.복수 테이블 및 수정 된 쿼리 세트
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)
나는 다음과 같은 "관리자"추가 고려하고
:
MemoryModule.mems.all()
Drive.drvs.all()
다음은 memorymodules에게 서비스 태그 값과 연관된 & 드라이브를 생성 할 수 있도록 ...
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')
을 에이. 이것이 정확한 접근 방법입니까 b. 그렇다면 템플릿에 "MemoryModule.mems.all() 및 Drive.drvs.all()을 표시하는 방법은 무엇입니까?
답변에 표시된 템플릿에서 오류 메시지를 반환합니다. 나머지를 구문 분석 할 수 없습니다 : '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에서 찾을 수 있습니다. –