मेरे विवरण में देखें मेरे पास 2 विधियाँ हैं get_context_data और postget_context_data में मैं self.object.pk के साथ डिटेल व्यू पीके प्राप्त कर सकता हूं लेकिन मैं इसे post विधि में कैसे प्राप्त कर सकता हूं?

[अपडेट किया गया]

यहाँ दृश्य है

class Class_detailView(LoginRequiredMixin, DetailView):
    login_url = '/'
    model = Class
    template_name = "attendance/content/teacher/class_detail.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['attendance_form'] = AttendanceForm(current_class_pk=self.object.pk) # pass data to form via kwargs 
        return context

    def post(self, request, *args, **kwargs):
        if request.method == "POST":
            attendance_form = AttendanceForm(request.POST)
            if attendance_form.is_valid():
                attendance_form.instance.teacher = self.request.user
                attendance_form.save()
                return redirect('class-detail', pk=self.kwargs.get('pk'))

प्रपत्र

class AttendanceForm(forms.ModelForm):
    class Meta:
        model = Attendance
        fields = ['student',]

    def __init__(self, *args, **kwargs):
        current_class_pk = kwargs.pop('current_class_pk')
        super(AttendanceForm, self).__init__(*args, **kwargs)
        current_student = Class.objects.get(id=current_class_pk)
        self.fields['student'].queryset = current_student.student

जब पोस्ट अनुरोध कहा जाता है तो मैं पीके प्राप्त करना चाहता हूं और इसे फॉर्म में पास करना चाहता हूं। मैं यह कैसे कर सकता हूं?

0
Carlos 10 सितंबर 2020, 14:27

1 उत्तर

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

क्या आपने यह कोशिश की:

def post(self, request, *args, **kwargs):
    if request.method == "POST":
        attendance_form = AttendanceForm(request.POST, current_class_pk=self.kwargs.get('pk'))
        if attendance_form.is_valid():
            attendance_form.instance.teacher = self.request.user
            attendance_form.save()
            return redirect('class-detail', pk=self.kwargs.get('pk'))
1
Diego Puente 10 सितंबर 2020, 15:29