def prefix_add_tags(request, prefix_id):
"""Adds usages to a prefix from post data"""
prefix = Prefix.objects.get(pk=prefix_id)
existing_usages = {u[0] for u in prefix.usages.values_list()}
usages = set(request.POST.getlist('usages'))
to_remove = list(existing_usages - usages)
to_add = list(usages - existing_usages)
PrefixUsage.objects.filter(prefix=prefix,
usage__in=to_remove).delete()
for usage_key in to_add:
usage = Usage.objects.get(pk=usage_key)
try:
PrefixUsage(prefix=prefix, usage=usage).save()
except DatabaseError:
pass
return HttpResponse()
评论列表
文章目录