對資料進行增加和編輯操作
一共涉及兩張關聯表操作
class business(models.model):
caption = models.charfield(max_length=32)
code = models.charfield(max_length=32,null=true,default="sa")
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',on_delete=models.cascade)
def host(request):
if request.method == "get":
v1 = models.host.objects.filter(nid__gt=0)
v2 = models.host.objects.filter(nid__gt=0).values('nid','hostname','b_id','b__caption')
v3 = models.host.objects.filter(nid__gt=0).values_list('nid','hostname','b_id','b__caption')
b_list = models.business.objects.all()
return render(request, 'host.html', )
elif request.method == "post":
h = request.post.get('hostname')
i = request.post.get('ip')
p = request.post.get('port')
b = request.post.get('b_id')
models.host.objects.create(hostname=h,
ip=i,
port=p,
b_id=b
)return redirect('/host')
//ajax請求處理
def test_ajax(request):
ret =
try:
h = request.post.get('hostname')
i = request.post.get('ip')
p = request.post.get('port')
b = request.post.get('b_id')
if h and len(h) > 5:
models.host.objects.create(hostname=h,
ip=i,
port=p,
b_id=b)
else:
ret['status'] = false
ret['error'] = "太短了"
except exception as e:
ret['status'] = false
ret['error'] = '請求錯誤'
前端頁面設計:
序號主機名
ip埠業務線名稱
操作
}}}}
}編輯|刪除
Django之ORM資料對映
資料對映在django中的應用 1 一對一關係 models.onetoonefield 相當於唯 一 外來鍵 2 一對多關係 models.foreignkey 3 多對多關係 models.manytomanyfield 相當於關聯表中建立兩個唯一外來鍵關聯 比如有書 描述表 出版社 作者這4張...
Django資料之ORM外來鍵操作
如果公共關鍵字在乙個關係中是主關鍵字,那麼這個公共關鍵字被稱為另乙個關係的外來鍵。建立外來鍵 表一 class foo models.model name models.charfield max length 1 表二class business models.model id caption m...
django之ORM查詢操作(二)
過濾器 基於所給的引數限制查詢的結果 count 返回當前查詢的總條數 aggregate 聚合 exists 判斷查詢集中是否有資料,如果有則返回true,沒有則返回false 2.快取 查詢集的結果被存下來之後,再次查詢相同資料時會使用之前快取的資料 user列表資訊檢視 def userlis...