में फार्म और प्रदर्शन से डेटा लाने मैं एक 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, "<a href='#'>Item</a> 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")
उत्तर देना असंभव है। आप उस क्षेत्र के साथ क्या करना चाहते हैं? आप किस आउटपुट की उम्मीद कर रहे हैं? आपका शेष दृश्य कैसा दिखता है? –
@DanielRoseman यह बाकी ऐप है- https://github.com/codingforentrepreneurs/Advancing-the-Blog/tree/master/src/posts। मैंने form.py पर एक नया फ़ील्ड 'userc' जोड़ा है जो आपको उपयोगकर्ता का चयन करने की अनुमति देता है। मैं चाहता हूं कि यह चयनित उपयोगकर्ता टेम्पलेट में प्रदर्शित हो। – uitwaa
यह अभी भी लगभग पर्याप्त जानकारी नहीं है। * कौन सा * देखें? और सबसे महत्वपूर्ण बात यह है कि आपने अपनी "विभिन्न विधियों" में क्या प्रयास किया और क्या हुआ? –