질문에 대한 답변 : 마약을 표시 할 때 거래 테이블 (Drugs)에 조회 값 (Atc)을 표시하려면 어떻게합니까?django ForeignKey display
models.py
class Atc(models.Model):
id = models.CharField(max_length=60, primary_key=True, db_column='ID')
txt = models.CharField(max_length=690, db_column='TXT')
class Meta:
db_table = u'ATC'
def __unicode__(self):
return u"%s - %s" % (self.id, self.txt)
class Drug(models.Model):
id = models.CharField(max_length=64, primary_key=True, db_column='ID')
atc = models.ForeignKey(Atc, db_column='ATCCD')
pricetopharm = models.FloatField(db_column='PRICETOPHARM')
brandnm = models.CharField(max_length=135, db_column='BRANDNM')
drugnm = models.CharField(max_length=240, db_column='DRUGNM')
class Meta:
db_table = u'DRUGS'
def __unicode__(self):
return u"%s - %s" %(self.drugnm, self.formandstrength)
그리고 admin.py
class DrugsAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['id']}),
('ATC', {'fields': ['atc','brandnm'] }),
(None, {'fields': ['drugnm']}),
('Prices', {'fields': ['pricetopharm']}),
]
search_fields = ['drugnm','brandnm']
admin.site.register(Drug, DrugsAdmin)
admin.site.register(Atc)
핵심 포인트
추가됩니다 모델 자체의 관계를 내장의 Saverio의 접근 방식을 사용하여솔루션, 모델에
atc = models.ForeignKey(Atc, db_column='ATCCD')
마약에
1,515,(트랜잭션 테이블을 참조하지 않음)과 admin.py 필드 셋에
('ATC', {'fields': ['atc','brandnm'] }),
은 다 대일 관계를 나타내는.
이제 admin.py의 내용은 MTV 철학에 있어야하며 (단, Drug, not Drugs) 단 개체의 이름을 바꾸는 것이 유용합니다. (. 즉, 마약하지 Druggs). 중복의의의를 제거 결과는 약물의 표시는 ID의 드롭 다운 상자를 보여줍니다 + TXT 예를 들어 P04H11 -. 세포 독성
도와 주셔서 감사합니다들 에 대한
피트
(너무 주니어 버거가 내 질문에 답하기 때문에 원래 질문을 편집하십시오!)
Thanks Saverio. 이것은 내가 할 수있는 가장 논리적 인 방법입니다. 다시 돌아가서 models.py를 조정하십시오. 나는 그것을 통해 자신의 길을 일한 때 업데이 트됩니다! – Pete855217