python怎么显示结果_python – 从表单中获取数据并在模板中显示

我正在尝试修改

django tutorial-

https://github.com/codingforentrepreneurs/Advancing-the-Blog/tree/master/src/posts中的帖子应用程序

我在forms.py中创建了一个新字段’userc’:

userc = forms.ModelChoiceField(queryset=User.objects.filter(is_staff=True))

我尝试了各种方法,但我无法在模板中显示所选用户.

我应该在views.py中添加什么?

编辑:

我已经尝试{{obj.userc}},{{instance.userc}}在模板中显示所选用户.

views.py

from django.contrib import messages

from django.contrib.contenttypes.models import ContentType

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

from django.db.models import Q

from django.http import HttpResponse, HttpResponseRedirect, Http404

from django.shortcuts import render, get_object_or_404, redirect

from django.utils import timezone

from comments.forms import CommentForm

from comments.models import Comment

from .forms import PostForm

from .models import Post

from django.contrib.auth.models import User

def post_create(request):

if not request.user.is_staff or not request.user.is_superuser:

raise Http404

form = PostForm(request.POST or None, request.FILES or None)

if form.is_valid():

instance = form.save(commit=False)

instance.user = request.user

instance.save()

# message success

messages.success(request, "Successfully Created")

return HttpResponseRedirect(instance.get_absolute_url())

context = {

"form": form,

}

return render(request, "post_form.html", context)

def abc(request):

if request.method == "POST":

#Get the posted form

form = PostForm(request.POST)

if form.is_valid():

userc = form.cleaned_data['userc']

return render(request, 'post_detail.html', {"selected_user" : userc})

def post_detail(request, slug=None):

instance = get_object_or_404(Post, slug=slug)

if instance.publish > timezone.now().date() or instance.draft:

if not request.user.is_staff or not request.user.is_superuser:

raise Http404

share_string = quote_plus(instance.content)

initial_data = {

"content_type": instance.get_content_type,

"object_id": instance.id

}

form = CommentForm(request.POST or None, initial=initial_data)

if form.is_valid() and request.user.is_authenticated():

c_type = form.cleaned_data.get("content_type")

content_type = ContentType.objects.get(model=c_type)

obj_id = form.cleaned_data.get('object_id')

content_data = form.cleaned_data.get("content")

parent_obj = None

try:

parent_id = int(request.POST.get("parent_id"))

except:

parent_id = None

if parent_id:

parent_qs = Comment.objects.filter(id=parent_id)

if parent_qs.exists() and parent_qs.count() == 1:

parent_obj = parent_qs.first()

new_comment, created = Comment.objects.get_or_create(

user = request.user,

content_type= content_type,

object_id = obj_id,

content = content_data,

parent = parent_obj,

)

return HttpResponseRedirect(new_comment.content_object.get_absolute_url())

comments = instance.comments

context = {

"title": instance.title,

"instance": instance,

"share_string": share_string,

"comments": comments,

"comment_form":form,

}

return render(request, "post_detail.html", context)

def post_list(request):

today = timezone.now().date()

queryset_list = Post.objects.active() #.order_by("-timestamp")

if request.user.is_staff or request.user.is_superuser:

queryset_list = Post.objects.all()

query = request.GET.get("q")

if query:

queryset_list = queryset_list.filter(

Q(title__icontains=query)|

Q(content__icontains=query)|

Q(user__first_name__icontains=query) |

Q(user__last_name__icontains=query)

).distinct()

paginator = Paginator(queryset_list, 8) # Show 25 contacts per page

page_request_var = "page"

page = request.GET.get(page_request_var)

try:

queryset = paginator.page(page)

except PageNotAnInteger:

# If page is not an integer, deliver first page.

queryset = paginator.page(1)

except EmptyPage:

# If page is out of range (e.g. 9999), deliver last page of results.

queryset = paginator.page(paginator.num_pages)

context = {

"object_list": queryset,

"title": "List",

"page_request_var": page_request_var,

"today": today,

}

return render(request, "post_list.html", context)

def post_update(request, slug=None):

if not request.user.is_staff or not request.user.is_superuser:

raise Http404

instance = get_object_or_404(Post, slug=slug)

form = PostForm(request.POST or None, request.FILES or None, instance=instance)

if form.is_valid():

instance = form.save(commit=False)

instance.save()

messages.success(request, "Item Saved", extra_tags='html_safe')

return HttpResponseRedirect(instance.get_absolute_url())

context = {

"title": instance.title,

"instance": instance,

"form":form,

}

return render(request, "post_form.html", context)

def post_delete(request, slug=None):

if not request.user.is_staff or not request.user.is_superuser:

raise Http404

instance = get_object_or_404(Post, slug=slug)

instance.delete()

messages.success(request, "Successfully deleted")

return redirect("posts:list")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值