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)
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
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')
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})
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})
def get_post_info(self, obj): """ 返回帖子相关信息 :param obj: :return: """ return Post.get_simple_post_info(obj.post_id)
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()
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
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
def perform_create(self, serializer): instance = serializer.save() # 增加帖子回复数量 Post.add_post_num(instance.post_id)