tôi có 2 mô hình đa bảng kế thừa như thế này:hình thức Django: cách DRY nhất để tổ chức tạo các biểu mẫu/cập nhật cho các mô hình thừa hưởng
class Post(models.Model):
title = models.CharField(max_length=100, blank=True, null=True)
text = models.TextField(blank=True, null=True)
location = models.PointField()
...
class BlogPost(Post):
blog = models.ForeignKey(Blog)
Tương tự như vậy, hình thức lớp học cho bài đăng trên blog cũng được thừa hưởng từ lớp PostForm:
class PostForm(MapModelForm):
...
class Meta:
model = Post
def clean(self):
...
class BlogPostForm(PostForm):
class Meta:
model = BlogPost
Tôi đã sử dụng để xử lý tạo/cập nhật cho cả hai kiểu máy ở 2 chế độ xem không dựa trên lớp. Để thực hiện những điều DRY, tôi đã quyết định cung cấp cho các chế độ xem chung dựa trên lớp của Django. Nhưng do thiếu các ví dụ và sự không thân thiện với người dùng của các tài liệu liên quan và nhiều cách tiếp cận, tôi bối rối.
Ý tưởng là có chế độ xem biểu mẫu dựa trên lớp học cho mô hình Post
và kế thừa chúng cho BlogPost
. Tôi nên điều chỉnh các lớp xem như thế nào?
Tôi có nên có chế độ xem PostCreate và PostUpdate riêng biệt không? Sau đó, hai lớp học gần như giống hệt nhau và không phải là DRY cả.
Tôi có nên có một đơn FormView
để cập nhật/tạo bài đăng không? Nó hoạt động để tạo ra nhưng tôi không thể tìm ra cách để làm điều này để cập nhật.
Tôi có nên tạo chế độ xem tùy chỉnh (hoặc hai chế độ xem để tạo/cập nhật) bằng cách sử dụng các lớp mixin được cung cấp thay vì kế thừa trực tiếp từ chế độ xem không?
cảm ơn câu trả lời xuất sắc. – omat
Cách định tuyến đến chế độ xem tốt khi bạn không biết liệu POST sẽ tạo hoặc cập nhật? Có cách nào tốt để làm điều đó theo cấu trúc này? – lajarre