Giả sử tôi muốn tạo và cập nhật mô hình. Trường nào được hiển thị và loại xác thực phụ thuộc vào hành động (tạo hoặc cập nhật). Nhưng họ vẫn chia sẻ rất nhiều sự xác nhận và chấm dứt giống nhau. Có cách nào sạch sẽ để có một ModelForm xử lý này (bên cạnh chỉ là nếu dụ tồn tại ở khắp mọi nơi) hoặc tôi nên chỉ cần tạo ra hai hình thức mô hình khác nhau?Mẫu thiết kế Django - Biểu mẫu để tạo và cập nhật mẫu
5
A
Trả lời
4
Hai khả năng sẽ xuất hiện trong tâm trí bạn. Bạn có thể thiết lập một thuộc tính trong phương pháp của hình thức __init__
, hoặc dựa trên một tham số bạn một cách rõ ràng vượt qua trong, hoặc dựa vào việc self.instance
tồn tại và có một tổ chức phi-Không pk:
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
# either:
self.edit = kwargs.pop('edit', False)
# or:
self.edit = hasattr(self, instance) and self.instance.pk is not None
super(MyModelForm, self).__init__(*args, **kwargs)
# now modify self.fields dependent on the value of self.edit
Các tùy chọn khác là để phân lớp ModelForm của bạn - giữ chức năng chung trong lớp cơ sở, sau đó tạo chức năng tạo hoặc cập nhật cụ thể trong các lớp con.
Các vấn đề liên quan
- 1. Mẫu thiết kế để cập nhật phần mềm
- 2. Mẫu thiết kế để tạo URL API
- 3. Mẫu thiết kế F #
- 4. Mẫu thiết kế và Scala
- 5. Trình thiết kế biểu mẫu Visual Studio
- 6. Mẫu thiết kế nào?
- 7. Mẫu thiết kế - Mẫu chiến lược
- 8. Đề xuất mẫu thiết kế
- 9. Thừa kế mẫu django và ngữ cảnh
- 10. Mẫu thiết kế Android
- 11. Mẫu thiết kế SQL
- 12. Máy nén Django và mẫu thừa kế
- 13. Mẫu thiết kế nào đối diện với mẫu Nhà máy?
- 14. Mẫu thiết kế gọn gàng nhất để hiển thị dữ liệu biểu mẫu và lỗi xác thực?
- 15. Mẫu thiết kế "Mặt tiền"
- 16. tạo biểu mẫu django trên init
- 17. Ngoài các mẫu thiết kế?
- 18. Mẫu biểu mẫu Django sử dụng biểu mẫu.ModelMultipleChoiceField
- 19. Các mẫu thiết kế và khung
- 20. Vaadin: Các mẫu thiết kế
- 21. Biểu mẫu Django: thông số chuyển thành biểu mẫu
- 22. Bản dịch nhãn trường biểu mẫu Django
- 23. Mẫu thiết kế kiến trúc
- 24. Mẫu thiết kế memcache PHP
- 25. Biểu mẫu Django - đặt nhãn
- 26. Thiết kế mẫu trong Rails
- 27. Mẫu thiết kế phần mềm kế toán
- 28. Mẫu thiết kế cho Lớp Truy cập Dữ liệu
- 29. Bạn sử dụng mẫu thiết kế/mẫu thiết kế ứng dụng PHP nào?
- 30. Nhận loại phụ tùng biểu mẫu Django từ trong mẫu
tuyệt, đó cũng là những gì tôi đang nghĩ. Đã tự hỏi nếu có một số cách tốt hơn để làm điều đó, nhưng điều này có vẻ tốt với tôi. – killerbarney