मैं अन्य वेबसाइट सर्वर पर एपीआई अनुरोध भेजने के लिए विवरण दृश्य और स्वतंत्र रूप प्रदर्शित करना चाहता हूं। मैंने view.py बनाया है लेकिन केवल मुझे खाली पृष्ठ मिलता है। मैं यह पता लगाने की कोशिश कर रहा हूं कि पिछले कुछ दिनों में इसे कैसे समायोजित किया जाए और अभी भी कोई सुराग नहीं है कि यह कैसे करें। आशा है कि आप इसमें मेरी मदद करेंगे

views.py

class DetailPostDisplay(DetailView):
    model = EveryPost
    template_name = 'post/detailpost.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['form'] = DictForm()
        return context

class DictWindowForm(SingleObjectMixin, FormView):
    template_name = 'post/detailpost.html'
    form_class = DictForm
    model = EveryPost

    def post(self, request, *args, **kwargs):
        self.object = self.get_object()
        return super().post(request, *args, **kwargs)

    def get_success_url(self):
        return reverse('detailpost', kwargs={'slug': self.object.slug})

class DetailPostList(View):
    def get(self, request, *args, **kwargs):
        view = DetailPostDisplay.as_view()
        return view(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        view = DictWindowForm.as_view()
        return view(request, *args, **kwargs)

एचटीएमएल मुझे यकीन नहीं है कि कार्रवाई खाली होनी चाहिए या url DetailPostDisplay शामिल होना चाहिए (स्लग पास करने की आवश्यकता है, जो मेरे पास नहीं है कि कैसे प्राप्त करें)

        <form method="POST" action="">
        {% csrf_token %}
        {{ form }}
        <input type="submit" class="btn btn-dark float-right mt-2" value="Tłumacz">
        </form>

urls.py

from django.urls import path
from . import views
from .views import PostListPl, PostListRu, DetailPostDisplay

urlpatterns = [
    path('', PostListPl.as_view(), name='index_pl'),
    path('ru/', PostListRu.as_view(), name='index_ru'),
    path('about/', views.about, name='about'),
    path('<slug:slug>/', DetailPostDisplay.as_view(), name='detailpost'),
]
0
ImustAdmit 25 फरवरी 2020, 22:48
यह स्पष्ट नहीं है कि आप अपने ब्राउज़र बार में कौन सा यूआरएल दर्ज करते हैं जो काम नहीं कर रहा है और "मुझे खाली पृष्ठ मिलता है" से आपका क्या मतलब है। कौन सा पेज? मुझे लगता है कि आप अपने विस्तृत दृश्य में एक फ़ॉर्म जोड़ने का प्रयास कर रहे हैं, तो आपका DictWindowForm दृश्य सही है (यदि यह एक दृश्य है तो इसे फ़ॉर्म क्यों कहा जाता है) और आपको इसके इसके बजाय का उपयोग करना चाहिए DetailPostDisplay (आप इसे पूरी तरह से हटा सकते हैं)।
 – 
dirkgroten
26 फरवरी 2020, 00:47
साथ ही {{ object }} आपके टेम्प्लेट में विशिष्ट EveryPost है, इसलिए संभवत: {{ object.slug }} स्लग है।
 – 
dirkgroten
26 फरवरी 2020, 00:50

1 उत्तर

सबसे बढ़िया उत्तर

आने वाली पीढ़ियों के लिए, मैंने इसे मिश्रित किया और इसे उखाड़ फेंका। अगर आप फॉर्म को सिर्फ डिटेल व्यू में डालना चाहते हैं, तो डीफ पोस्ट बनाएं और वहां लॉजिक लगाएं। नीचे कोड:

views.py

class DetailPostDisplay(DetailView):
    model = EveryPost
    template_name = 'post/detailpost.html'

    def get_context_data(self, **kwargs):
        context = super(DetailPostDisplay, self).get_context_data(**kwargs)
        context['form'] = DictForm
        return context

    def post(self, request, *args, **kwargs):
        form = DictForm(request.POST)
        if form.is_valid():
            self.object = self.get_object()

और बाद में फॉर्म से टेम्पलेट में वैरिएबल पास करने के लिए कोड

            context = super(DetailPostDisplay, self).get_context_data(**kwargs)
            context['form'] = DictForm
            context['word'] = request.POST.get('word')
            return self.render_to_response(context=context)
0
ImustAdmit 28 फरवरी 2020, 11:58