Beispiel #1
0
 def perform_destroy(self, instance):
     if not (instance.author_id == self.request.user.id
             and instance.get_descendant_count() <= 0):
         raise serializers.ValidationError({'code':...})
     super().perform_destroy(instance)
     # 减少帖子回复数量
     Post.del_post_num(instance.post_id)
Beispiel #2
0
def get_user_posts(user_profile, videos):
    posts = []
    for _ in range(random.randint(5, 10)):
        if videos and yes_or_no() and yes_or_no():
            posts.append(Post(post_type=PostType.VIDEO, youtube_link=videos.pop(), creator=user_profile))
            continue
        posts.append(Post(post_type=PostType.TEXT, text=fake.text(), creator=user_profile))
    return posts
Beispiel #3
0
 def post(self, request):
     """
     save form data in database
     :param pk: user id
     """
     form = CreatePostForm(request.POST, request.FILES)
     if form.is_valid():
         user = request.user
         validated_data = form.cleaned_data
         post_obj = Post(title=validated_data['title'],
                         content=validated_data['content'], post_pic=validated_data['post_pic'], user=user)
         post_obj.save()
         messages.success(request, 'Post created successfully')
     return redirect('friends_post')
Beispiel #4
0
    def post(self, request):
        publisher = request.user
        form = PostForm(request.POST, request.FILES or None)
        if form.is_valid():
            post = Post(
                publisher=publisher,
                location=form.cleaned_data['location'],
                image=form.cleaned_data['image'],
                content=form.cleaned_data['content'],
            )
            post.save()
            return redirect(reverse('profile'))

        return render(request, 'post/new_post.html', {'form': form})
Beispiel #5
0
 def post(self, request, pk):
     """
     save form data in database
     :param pk: user id
     """
     form = CreatePostForm(request.POST)
     if form.is_valid():
         user = User.objects.get(id=pk)
         validated_data = form.cleaned_data
         user_obj = Post(title=validated_data['title'],
                         content=validated_data['content'],
                         user=user)
         user_obj.save()
         # return redirect('ok')
     return render(request, 'post/post_create.html', {'form': form})
Beispiel #6
0
 def get_post_info(self, obj):
     """
     返回帖子相关信息
     :param obj:
     :return:
     """
     return Post.get_simple_post_info(obj.post_id)
Beispiel #7
0
    def handle(self, *args, **options):
        count = int(args[0]) if len(args) else 1
        user = User.objects.all().order_by('?')[0]

        for i in range(count):
            post = Post(text="Text", author=user)
            post.save()
            post.title = u"Post #{0}".format(post.id)
            post.text = u"Text for {0}.".format(post.uuid)
            post.save()
Beispiel #8
0
def recent_posts_or_events():
    posts = list(Post.recent())
    events = list(Event.recent())
    p_o_e = posts + events
    p_o_e.sort(key=lambda x: x.date, reverse=True)
    return p_o_e
Beispiel #9
0
def recent_posts_or_events():
    posts = list(Post.recent())
    events = list(Event.recent())
    p_o_e = posts + events
    p_o_e.sort(key=lambda x: x.date, reverse=True)
    return p_o_e
Beispiel #10
0
def get_post_data(post_instance):
    post = model_to_dict(post_instance)
    post['likes'] = Post.get_number_of_likes(post_instance)
    post['creation_date'] = post_instance.creation_date
    return post
Beispiel #11
0
 def perform_create(self, serializer):
     instance = serializer.save()
     # 增加帖子回复数量
     Post.add_post_num(instance.post_id)