【发布时间】:2020-06-03 19:18:42
【问题描述】:
我有两个视图,只有一行不同的代码,两个视图的其余部分相同。如何防止代码重复?我可以删除 tag_view 并将可选参数作为 kwarg 添加到索引并根据它返回没有特定标签或标签的视图吗?它应该如何工作?以下是我的看法。
def index(request):
post_form = AddPostForm(request.POST or None, instance=request.user)
comment_form = AddCommentForm(request.POST or None, instance=request.user)
if request.method == 'POST':
# FORMULARZ DODAWANIA POSTU
if post_form.is_valid():
post_form.save()
create_notifications(post_form.instance)
# FORMULARZ DODAWANIA KOMENTARZA
if comment_form.is_valid():
comment_form.save()
(posts, comments) = serve_post_and_comments_except_blocked(request)
return render(request, 'mikroblog/index.html', {'posts': posts, 'comments': comments,
'post_form': post_form, 'comment_form': comment_form})
def tag_view(request, tag):
post_form = AddPostForm(request.POST or None, instance=request.user)
comment_form = AddCommentForm(request.POST or None, instance=request.user)
if request.method == 'POST':
# FORMULARZ DODAWANIA POSTU
if post_form.is_valid():
post_form.save()
create_notifications(post_form.instance)
# FORMULARZ DODAWANIA KOMENTARZA
if comment_form.is_valid():
comment_form.save()
(posts, comments) = serve_post_and_comments_except_blocked(request)
posts.filter(content_post__contains=tag)
actual_tag = tag
return render(request, 'mikroblog/tag.html', {'posts': posts, 'actual_tag': actual_tag, 'comments': comments,
'post_form': post_form, 'comment_form': comment_form})
【问题讨论】: