views.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from django.contrib.auth.models import User
  2. from django.core.exceptions import ObjectDoesNotExist
  3. from django.http.response import Http404, HttpResponseRedirect
  4. from django.shortcuts import render, get_object_or_404, redirect
  5. from main.forms import StoryForm
  6. from main.models import Story
  7. def index(request):
  8. try:
  9. user = User.objects.get(username=request.user)
  10. user_stories = list(user.stories.all())
  11. except ObjectDoesNotExist:
  12. user_stories = []
  13. return render(request, 'index.html', {'mes_stories': user_stories})
  14. def story_details(request, story_id):
  15. story = get_object_or_404(Story, id=story_id)
  16. return render(request, 'story_details.html', {'story': story})
  17. def story_create(request):
  18. if request.method == 'POST':
  19. form = StoryForm(request.POST)
  20. if form.is_valid():
  21. story = form.save(commit=False)
  22. story.author = User.objects.get(username=request.user)
  23. story.save()
  24. return redirect("story_details", story.id)
  25. else:
  26. form = StoryForm()
  27. return render(request, 'story_form.html', {'form': form})
  28. def story_edit(request, story_id):
  29. if request.method == 'POST':
  30. story = get_object_or_404(Story, id=story_id)
  31. form = StoryForm(request.POST, instance=story)
  32. if form.is_valid():
  33. form.save()
  34. return redirect("story_details", story.id)
  35. else:
  36. story = get_object_or_404(Story, id=story_id)
  37. form = StoryForm(instance=story)
  38. return render(request, 'story_form.html', {'form': form})
  39. def story_delete(request, story_id):
  40. if request.method == 'POST':
  41. story = Story.objects.get(id=story_id)
  42. story.delete()
  43. return redirect("index")
  44. else:
  45. story = Story.objects.get(id=story_id)
  46. return render(request, 'deletion.html', {'object': story})