예제 #1
0
 def get_context_data(self, **kwargs):
     context = super(MovieDetailView, self).get_context_data(**kwargs)
     context["form"] = review_forms.CreateReviewForm(
         initial={"movie": self.object})
     context["reviews"] = self.object.reviews.filter(
         movie_id=self.kwargs.get("movie_id"))
     return context
예제 #2
0
파일: views.py 프로젝트: jaeyp/clone-airbnb
    def get(self, *args, **kwargs):
        pk = kwargs.get("pk")
        """ Overriding get() by using a custom manager (CustomModelManager)
            in order to filter a request accessing a reservation which doen't exist
        """
        debug.info(pk)

        # Move this code to CustomModelManager
        """
            try:
                reservation = models.Reservation.objects.get(pk=pk)
            except models.Reservation.DoesNotExist:
                pass
        """
        # and use .get_or_none() instead
        reservation = models.Reservation.objects.get_or_none(pk=pk)

        # raise Http404
        # if the reservation pk does not exist
        # or user is neither a guest nor a host
        if not reservation or (
                reservation.guest != self.request.user  # not a guest
                and reservation.room.home != self.request.user  # not a host
        ):
            raise Http404()

        # set reviews/form for reservations/template (detail.html)
        form = review_forms.CreateReviewForm()
        return render(self.request, "reservations/detail.html", {
            "reservation": reservation,
            "form": form
        })
예제 #3
0
 def get(self, *args, **kwargs):
     kind = self.request.GET.get("kind", None)
     pk = kwargs.get("pk")
     if kind is not None:
         if kind == "guest":
             reservations = models.Reservation.objects.filter(guest=pk)
             if not reservations:
                 raise Http404
             form = review_forms.CreateReviewForm()
             return render(
                 self.request,
                 "reservations/list.html",
                 {
                     "reservations": reservations,
                     "form": form
                 },
             )
         elif kind == "host":
             reservations = models.Reservation.objects.filter(
                 room__host_id=pk)
             if not reservations:
                 raise Http404
             return render(
                 self.request,
                 "reservations/host.html",
                 {"reservations": reservations},
             )
 def get(self, *args, **kwargs):
     pk = kwargs.get('pk')
     reservation = models.Reservation.objects.get_or_none(pk=pk)
     if (reservation.guest != self.request.user and reservation.room.host != self.request.user) \
             or reservation is None:
         raise Http404()
     user = self.request.user
     form = review_forms.CreateReviewForm()
     return render(self.request, "reservation/detail.html", {'reservation': reservation, 'form': form, 'user': user})
예제 #5
0
 def get(self, *args, **kwargs):
     pk = kwargs.get("pk")
     post = models.Post.objects.get_or_none(pk=pk)
     if not post:
         raise Http404()
     form = review_forms.CreateReviewForm()
     return render(self.request, "posts/post_detail.html", {
         "post": post,
         "form": form
     })
예제 #6
0
 def get(self, *args, **kwargs):
     pk = kwargs.get('pk')
     reservation = models.Reservation.objects.get_or_none(pk=pk)
     if not reservation or (reservation.guest != self.request.user
                            and reservation.room.host != self.request.user):
         raise Http404
     form = review_forms.CreateReviewForm()
     return render(self.request, "reservations/detail.html", {
         "reservation": reservation,
         "form": form
     })
예제 #7
0
 def get(self, request, *args, **kwargs):
     pk = kwargs.get("pk")
     movie = Movie.objects.get(pk=pk)
     form = forms.CreateReviewForm()
     return render(
         self.request,
         "movies/movie_detail.html",
         {
             "movie": movie,
             "form": form
         },
     )
예제 #8
0
 def get(self, request, *args, **kwargs):
     pk = kwargs.get("pk")
     book = Book.objects.get(pk=pk)
     form = forms.CreateReviewForm()
     return render(
         self.request,
         "books/book_detail.html",
         {
             "book": book,
             "form": form
         },
     )
예제 #9
0
파일: views.py 프로젝트: mizz0224/Mentors
 def get(self, *args, **kwargs):
     pk = kwargs.get("pk")
     user = self.request.user
     reservation = models.Reservation.objects.get_or_none(pk=pk)
     if reservation is None or (not (reservation.user == user
                                     or reservation.mentor.user == user)):
         return redirect(reverse("core:home"))
     form = reviews_forms.CreateReviewForm()
     return render(self.request, "reservations/detail.html", {
         "reservation": reservation,
         "form": form
     })
예제 #10
0
def reservation_detail(request, pk):
    reservation = models.Reservation.objects.get(pk=pk)
    if not reservation or (reservation.guest != request.user
                           and reservation.restaurant.host != request.user):
        raise Http404()
    form = review_forms.CreateReviewForm()
    return render(
        request,
        "reservations/detail.html",
        {
            "reservation": reservation,
            "form": form
        },
    )
예제 #11
0
    def get(self, request, *args, **kwargs):

        pk = kwargs.get("pk")
        reservation = reservation_models.Reservation.objects.get_or_none(pk=pk)
        if reservation is None or (
            reservation.guest != request.user
            and reservation.room_info.host != request.user
        ):
            raise Http404()
        form = review_forms.CreateReviewForm()
        return render(
            request,
            "reservations/reservation_detail.html",
            context={"reservation": reservation, "form": form},
        )
예제 #12
0
 def get(self, *args, **kwargs):
     pk = kwargs.get("pk")
     reservation = models.Reservation.objects.get_or_none(pk=pk)
     if not reservation or (reservation.guest != self.request.user
                            and reservation.room.host != self.request.user):
         return redirect(reverse("core:home"))
     form = review_forms.CreateReviewForm()
     return render(
         self.request,
         "reservations/detail.html",
         {
             "reservation": reservation,
             "form": form
         },
     )
예제 #13
0
 def get(self, *args, **kwargs):
     pk = kwargs.get("pk")
     reservation = models.Reservation.objects.get_or_none(pk=pk)
     if not reservation:
         raise Http404()
     if (self.request.user != reservation.guest
             and self.request.user != reservation.room.host):
         raise Http404()
     form = reviews_forms.CreateReviewForm()
     return render(
         self.request,
         "reservations/detail.html",
         {
             "reservation": reservation,
             "form": form
         },
     )
예제 #14
0
 def get(self, *args, **kwargs):
     pk = self.kwargs.get("pk")
     # models.MYCLASS.objects 를 model manager 라고하며, managers.py 를 통해 오버라이드 가능하다.
     #  get_object_or_404 method 를 사용하는 것도 get_on_none 과 동일한 기능을 구현한다.
     reservation = models.Reservation.objects.get_or_none(pk=pk)
     if not reservation or (reservation.guest != self.request.user
                            and reservation.room.host != self.request.user):
         raise Http404()
     form = review_forms.CreateReviewForm()
     return render(
         request=self.request,
         template_name="reservations/detail.html",
         context={
             "reservation": reservation,
             "form": form
         },
     )
예제 #15
0
파일: views.py 프로젝트: kimjy0301/clonebnb
    def get(self, request, pk):
        reservation = reservations_models.Reservation.objects.get_or_none(
            pk=pk)
        if (not reservation) or (reservation.guest != self.request.user and
                                 reservation.room.host != self.request.user):
            raise Http404()

        # 리뷰에 있는 폼을 가져다 쓸수있음
        form = reviews_form.CreateReviewForm()

        return render(
            self.request,
            "reservations/detail.html",
            {
                "reservation": reservation,
                "form": form
            },
        )
예제 #16
0
 def get(self, *args, **kwargs):
     pk = kwargs.get("pk")
     # Instead of doing models.reservation.DoesNotExist:, made model manager!
     reservation = models.Reservation.objects.get_or_none(pk=pk)
     if not reservation or (
             # the user has to be guest or host
             reservation.guest != self.request.user
             and reservation.room.host != self.request.user):
         raise Http404()
     form = review_forms.CreateReviewForm()
     return render(
         self.request,
         "reservations/detail.html",
         {
             "reservation": reservation,
             "form": form
         },
     )
예제 #17
0
    def get(self, *args, **kwargs):
        pk = kwargs.get("pk")
        reservation = models.Reservation.objects.get_or_none(pk=pk)
        if not reservation:
            raise Http404()
        if (reservation.guest != self.request.user
                and reservation.room.host != self.request.user):
            # the user that has requested this page has to either be guest or host
            raise Http404()

        form = review_forms.CreateReviewForm()
        return render(
            self.request,
            "reservations/detail.html",
            {
                "reservation": reservation,
                "form": form
            },
        )
예제 #18
0
 def get(self, *args, **kwargs):
     pk = kwargs.get("pk")
     # reservation = models.Reservation.objects.get(pk=pk)
     # get은 결과를 찾지 못하면 error를 발생시킨다!.. DoesNotExist말고 다르게 해보자
     reservation = models.Reservation.objects.get_or_none(pk=pk)
     # 여기 pk=pk 인자 값들은.. CustomReservationManager의 get or none의
     # **kwargs 의 쿼리 인자로 받을수있따!
     # managers 에 정의하고 model에 추가해서 쓸수있다!
     # 이 reservation은 guest나 host한테만 보여질 것이다!
     if not reservation or (reservation.guest != self.request.user
                            and reservation.room.host != self.request.user):
         raise Http404()
     # 페이지를 요청하는 user는 guest나 host여야 한다!
     # 즉 호스트도 게스트도 아니라면 http404를 raise한다!
     form = review_forms.CreateReviewForm()  # review의 폼을 받아와서 밑에 보내준다
     return render(
         self.request,
         "reservations/detail.html",
         {
             "reservation": reservation,
             "form": form
         },
     )
예제 #19
0
 def get_context_data(self, **kwargs):
     form = review_forms.CreateReviewForm()
     context = super().get_context_data(**kwargs)
     context["form"] = form
     return context
예제 #20
0
 def get_context_data(self, **kwargs):
   context = super(MovieDetail, self).get_context_data(**kwargs)
   context['form'] = forms.CreateReviewForm()
   return context