编辑主机(一对多)

ajax方式

models.py

from __future__ import unicode_literals
from django.db import models
# Create your models here.
class Host(models.Model):
    hostname = models.CharField(max_length=32, unique=True)
    ip = models.GenericIPAddressField(max_length=20, unique=True)
    port = models.IntegerField()
    category = models.ForeignKey('Category')
    def __unicode__(self):
        return self.hostname

class Category(models.Model):
    name = models.CharField(max_length=32, unique=True)
    def __unicode__(self):
        return self.name

urls.py

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.index, name="index"),
    url(r'^del/$', views.ajax_del_host, name="ajax_del_host"),
    url(r'^create_host/$', views.ajax_create_host, name="ajax_create_host"),
    url(r'^edit/$', views.ajax_edit, name="ajax_edit"),
]

views.py

def ajax_edit(request):
    hid = request.POST.get('hid')
    hostname = request.POST.get('hostname2')
    port = request.POST.get('port2')
    ip = request.POST.get('ip2')
    cid2 = request.POST.get('cid2')
    print(hid, hostname, cid2, ip, port)
    res = {'status': True, 'error': None, 'data': None}
    try:
        Host.objects.filter(id=hid).update(hostname=hostname, port=port, ip=ip, category_id=cid2)
    except Exception as e:
        res['status'] = False
        res['error'] = '更新失败'
    return HttpResponse(json.dumps(res))

template




    
    
    


{% for host in hosts %} {% endfor %}
序号 cid name ip port category xxx xxx
{{ forloop.counter }} {{ host.category_id }} {{ host.hostname }} {{ host.ip }} {{ host.port }} {{ host.category.name }} 删除

你可能感兴趣的:(编辑主机(一对多))