18

Tôi đang sử dụng chế độ xem chung dựa trên Lớp học, bất kỳ ai cũng có thể đề xuất cho tôi cách đặt giá trị ban đầu để cập nhật biểu mẫu?Đặt giá trị ban đầu thành dạng mô hình trong chế độ xem chung dựa trên lớp học

Tôi đã thử sử dụng phương thức get_initial() nhưng không thành công. Dưới đây là đoạn code mà tôi đã cố gắng

class IncidentUpdateView(UpdateView): 
     form_class = IncidentForm 
     form_class.initial = {"badge_number": '88888'} 
     model = Incident 
     template_name = 'hse/incident/incident_update.html' 

    def get_initial(self, form_class): 
     initials = { 
     "badge_number": '88888' 
     } 
     form = form_class(initial=initials) 
     return form 

    def get_success_url(self): 
     return reverse_lazy('hse-incident', args=[self.object.id]) 

Trả lời

33

Bạn nên xác định một phương pháp get_initial mà trả về một cuốn từ điển có chứa các giá trị ban đầu:

class IncidentUpdateView(UpdateView): 

    def get_initial(self): 
     return { 'value1': 'foo', 'value2': 'bar' } 

Ngoài ra, bạn có thể xác định một giá trị initial:

class IncidentUpdateView(UpdateView): 
    initial = { 'value1': 'foo', 'value2': 'bar' }