def user_archive_preferences(request: HttpRequest, archive_pk: int, setting: str) -> HttpResponse:
"""Archive user favorite toggle."""
try:
Archive.objects.get(pk=archive_pk)
except Archive.DoesNotExist:
raise Http404("Archive does not exist")
if setting == 'favorite':
current_user_archive_preferences, created = UserArchivePrefs.objects.get_or_create(
user=User.objects.get(pk=request.user.id),
archive=Archive.objects.get(pk=archive_pk),
defaults={'favorite_group': 1}
)
if not created:
current_user_archive_preferences.favorite_group = 1
current_user_archive_preferences.save()
elif setting == 'unfavorite':
current_user_archive_preferences, created = UserArchivePrefs.objects.get_or_create(
user=User.objects.get(pk=request.user.id),
archive=Archive.objects.get(pk=archive_pk),
defaults={'favorite_group': 0}
)
if not created:
current_user_archive_preferences.favorite_group = 0
current_user_archive_preferences.save()
else:
return render_error(request, "Unknown user preference.")
return HttpResponseRedirect(request.META["HTTP_REFERER"],
{'user_archive_preferences': current_user_archive_preferences})
评论列表
文章目录