python类objects()的实例源码

views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def skip_always(request, story_id):
    s = get_object_or_404(Story.objects, id=story_id)
    u = request.user

    if s.is_finished:
        return HttpResponseBadRequest("Story already finished")
    if not s.participates_in(u):
        raise PermissionDenied

    try:
        s.set_always_skip(u)
        messages.success(request, u"Du wirst nun automatisch übersprungen bei „%s“." % s.title)
    except NotEnoughActivePlayers as e:
        messages.success(request, u"Zuwenig aktive Spieler, als dass du überspringen kannst bei „%s“." % s.title)
    return redirect('overview')
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def unskip_always(request, story_id):
    s = get_object_or_404(Story.objects, id=story_id)
    u = request.user

    if not s.participates_in(u):
        raise PermissionDenied
    if s.is_finished:
        return HttpResponseBadRequest("Story already finished")

    messages.success(request, u"Du schreibst wieder aktiv mit bei „%s“." % s.title)
    s.unset_always_skip(u)
    return redirect('overview')
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def show_story(request, story_id):
    s = get_object_or_404(Story.objects, id=story_id)

    if s.is_finished:
        if not s.participates_in(request.user) and not s.is_public:
            raise PermissionDenied

        anonym = not s.participates_in(request.user)

        if request.user.is_authenticated() and not request.user in s.read_by.all():
            s.read_by.add(request.user)

        context = {
            'story': s,
            'anonymized' : anonym,
            'has_upvoted' : s.has_upvoted(request.user),
            'upvote_count' : s.upvote_count(),
        }
        return render(request, 'umklapp/show_story.html', context)
    else:
        # unfinished business
        assert not s.is_finished

        if not s.participates_in(request.user):
            raise PermissionDenied

        form = None
        t = get_object_or_404(s.tellers, user=request.user)

        if s.whose_turn == t.position:
            # only show form if its the user's turn
            form = ExtendStoryForm()

        context = {
            'story': s,
            'form': form,
            'always_skip' : s.does_always_skip(request.user),
        }
        return render(request, 'umklapp/extend_story.html', context)
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def update_profile(request):
    form = UserUpdateForm(request.POST, instance=request.user)
    if form.is_valid():
        form.save()
        messages.success(request, u"Daten gespeichert")
        return redirect('user_profile')
    else:
        context = {
            'form': form,
            'sentences_written': StoryPart.objects.filter(teller__user=request.user).count(),
            'participated_in': Teller.objects.filter(user=request.user).count(),
            'stories_started': Story.objects.filter(started_by=request.user).count(),
        }
        return render(request, 'umklapp/profile.html', context)
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def upvote_story(request, story_id):
    s = get_object_or_404(Story.objects, id=story_id)

    if not s.is_finished:
        return HttpResponseBadRequest("Story not finished yet")

    s.upvote_story(request.user)

    return redirect('show_story', story_id=s.id)
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def downvote_story(request, story_id):
    s = get_object_or_404(Story.objects, id=story_id)

    if not s.is_finished:
        return HttpResponseBadRequest("Story not finished yet")

    s.downvote_story(request.user)

    return redirect('show_story', story_id=s.id)
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def downvote_storypart(request, storypart_id):
    s = get_object_or_404(StoryPart.objects, id=storypart_id)

    s.downvote(request.user)

    return redirect('show_story', story_id=s.teller.corresponding_story.id)
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def publish_story(request, story_id):
    s = get_object_or_404(Story.objects, id=story_id)

    if not s.is_finished:
        return HttpResponseBadRequest("Story not finished yet")
    if not s.started_by == request.user:
        raise PermissionDenied

    s.public(True)

    return redirect('show_story', story_id=s.id)
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def unpublish_story(request, story_id):
    s = get_object_or_404(Story.objects, id=story_id)

    if not s.is_finished:
        return HttpResponseBadRequest("Story not finished yet")
    if not s.started_by == request.user:
        raise PermissionDenied

    s.public(False)

    return redirect('show_story', story_id=s.id)
views.py 文件源码 项目:umklapp_site 作者: mohrm 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def running_stories(request):
    all_running_stories = Story.objects \
            .filter(is_finished = False) \
            .order_by('title', 'id') \
            .annotate(parts_count = Count('tellers__storyparts',distinct=True)) \
            .annotate(contrib_count = Count('tellers__storyparts__teller', distinct=True)) \
            .annotate(active_count = Count('tellers', distinct=True)) \
            .select_related('started_by') \
            .prefetch_related('always_skip') \
            .prefetch_related('tellers__user') \

    if request.user.is_staff:
        running_stories = all_running_stories
    else:
        running_stories = all_running_stories.filter(tellers__user=request.user)

    user_activity = User.objects \
            .filter(is_staff=False) \
            .annotate(parts_written=Count('teller__storyparts')) \
            .order_by('-parts_written', 'username')[:10]

    context = {
        'username': request.user.username,
        'specialpowers': request.user.is_staff,
        'running_stories': running_stories,
        'finished_stories': finished_stories,
        'user_activity': user_activity,
    }
    return render(request, 'umklapp/running.html', context)
views.py 文件源码 项目:nearishAPI 作者: isisnaomi 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def places(self, request, *args, **kwargs):
        snippet = self.get_object()
        lat = request.query_params['lat']
        lng = request.query_params['lng']

        userId = kwargs.get("id")
        listPlaces = []

        user = User.objects(id=userId).get()
        userTypes = user.types
        if not userTypes:
            userTypes = ['594c36a033cbb6eed6f364e6','594c36b233cbb6eed6f364f2','594c368633cbb6eed6f364da','594c4a504362de3d8fae464f','5956fee67d2bf938c292e0bc']

        places =  Place.objects(Q(loc__near=[float(lat), float(lng)]))

        for type in userTypes:
            typeName = Category.objects(id=type).get().name


            for place in places:
                if typeName in place.types:

                    # Rating place according to twitter
                    twitterRating = len(Tweet.objects(text__contains= place.name))
                    place.twitter_rating = twitterRating

                    #Rating place according to user
                    userRating = RatedPlace.objects(Q(user_id__exact=userId) & Q(place_id__exact=place.id) )
                    print userId
                    print place.id
                    print userRating

                    if userRating:

                        rating = userRating.order_by('-id').first().rating
                    else:
                        rating = ''
                    place.user_rating = rating

                    #Adding places to list of recommended places
                    listPlaces.append(place)

                    # Sort the list according to twitter rated
                    listPlaces.sort(key=lambda x: x.twitter_rating, reverse=True)

                    # Sort the list according to user rated
                    listPlaces.sort(key=lambda x: x.user_rating, reverse=True)

        serializer = PlaceSerializer(listPlaces[:20], many=True)

        return Response(serializer.data)

    ########User choosen categories
views.py 文件源码 项目:WikiLinks 作者: JakobGM 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def semester_view(request, study_program, main_profile=None, semester_number=None, save_location=True):
    """
    Generates the link portal for a given semester in a given program code
    """
    try:
        semester = Semester.get(study_program, main_profile, semester_number)
    except Semester.DoesNotExist:
        if not main_profile and not semester_number:
            # This URL might refer to a userpage instead
            return studentpage(request, study_program)
        raise Http404(
            _('%s. semester ved hovedprofilen "%s" knyttet til studieprogrammet "%s" eksisterer ikke')
            % ((semester_number or 'Et'), main_profile or 'felles', study_program)
        )

    if save_location:
        # Save the deliberate change of location by user in the session, as the semester has been found successfully
        request.session['semester_pk'] = semester.pk
        request.session['study_program_slug'] = semester.study_program.slug

        # Delete studentpage slug in order to prevent redirection to it
        request.session['homepage'] = ''

        if semester.main_profile:
            request.session['main_profile_slug'] = semester.main_profile.slug
        else:
            request.session['main_profile_slug'] = ''
        request.session['semester_number_slug'] = semester.number
        request.session['homepage'] = ''  # Delete saved homepage

    # Where to send users if the semester has electives
    electives_url = ''
    if semester.has_electives:
        if request.user.is_authenticated:
            electives_url = request.user.options.get_admin_url()
        else:
            electives_url = '/accounts/dataporten/login'

    return render(
        request,
        'semesterpage/courses.html',
        {
            'semester': semester,
            'courses': semester.courses.all(),
            'study_programs': StudyProgram.objects.filter(published=True),
            'calendar_name': get_calendar_name(request),
            'electives_url': electives_url,
            'user': request.user,
            'student_page': False,
        },
    )


问题


面经


文章

微信
公众号

扫码关注公众号