django 多对多(manytomany)的对象遍历


1.前端遍历

{% for api in  item.important_apis.all%} <-!>注意这里用的是all</-!>
........{{ api.full_url }}
{% endfor %}

2.后端遍历

def item_check(request):
    if request.method == 'GET':
        item_id = request.GET.get('id')
        item = CheckItem.objects.get(id=item_id)
        nslookup_return_list = []
        ping_return_list = []
        api_status_return_list = []
        obj_dict = {'nslookup': nslookup_return_list, 'ping': ping_return_list, 'api_status': api_status_return_list}
        # 注意这里检查项目和重要接口是多对多的关系,如游戏登录需要多个接口,一个接口也对应着多款游戏登录
        for api in item.important_apis.all():  #  **注意这里在遍历的时候使用all()**
            item_api = ImportantApi.objects.get(full_url=api.full_url)
            domain = item_api.domain
        return HttpResponse(json.dumps(obj_dict))