Django 자료의 ORM 외키 조작

1405 단어 Django
◆외부 키
만약 공공 키워드가 하나의 관계에서 주 키워드라면, 이 공공 키워드는 다른 관계의 외부 키라고 부른다.
외부 키를 만들려면 다음과 같이 하십시오.
#  
class Foo(models.Model):
    name = models.CharField(max_length=1)

#  
class Business(models.Model):
    # id
    caption = models.CharField(max_length=32)
    code = models.CharField(max_length=32,null=True,default="SA")
    fk = models.ForeignKey('Foo')  #       ,        

#  
class Host(models.Model):
    nid = models.AutoField(primary_key=True)
    hostname = models.CharField(max_length=32,db_index=True)
    ip = models.GenericIPAddressField(protocol="ipv4",db_index=True)
    port = models.IntegerField()
    b = models.ForeignKey(to="Business", to_field='id')

◆외부 키 조회:
1、통과점 "."크로스 테이블 실행하기
# 
v = models.Host.objects.filter(nid__gt=0)
v[0].b.caption 
v[0].b.fk.name 

2. 이중 밑줄로 ""테이블 간 진행:
v2 = models.Host.objects.filter(nid__gt=0).values('nid','hostname','b_id','b__caption')
for row in v2:
     print(row['nid'],row['hostname'],row['b_id'],row['b__caption'])

v3 = models.Host.objects.filter(nid__gt=0).values_list('nid','hostname','b_id','b__caption')
return render(request, 'host.html', {'v1': v1,'v2': v2,'v3': v3})

좋은 웹페이지 즐겨찾기