Знаком с джанго очень поверхностно, я в такой ситуации мастерил из квери сета объекты вручную, как то так:
from django.http import JsonResponse
from .models import User
def users(request):
users = User.objects.all()
output = []
for elem in users:
output.append(
{"name": elem.name, "adress": elem.adress, "age": elem.age})
return JsonResponse(output, safe=False)
То есть, в вашем коде можно stations также перебрать, и потом уже добавлять в общий массив ctx, который отправлять.
def filter(request):
if request.GET:
filter = request.GET.get('filter')
decoded_filter = json.loads(filter) # из строки инициализирует объект
stations = Station.objects.all()
stations_out = []
for elem in stations:
stations_out.append({.......}) #создаем нужный объект
id_net = Net.objects.filter(name=decoded_filter["net"])
list_id_stations = Networkstations.objects.filter(idnet__in=id_net).values_list("idstation", flat=True)
list_name_net = []
if decoded_filter["net"] != 'all':
stations = stations.filter(id__in=list_id_stations)
if decoded_filter["type"] != 'all':
stations = stations.filter(type=decoded_filter["type"])
for station in stations:
list_name_net.append(
list(Networkstations.objects.filter(idstation=station.id).values('idnet__name')))
ctx = {
'stations': stations_out,
'list_name_net': list_name_net,
}
return JsonResponse(ctx, safe=False)
Конечно, если в таблице будет дофига полей, такой способ не очень удобен, подпишусь чтобы узнать правильный ответ.
Или юзать
django rest framework можно, там все это удобно сделано.