Tôi muốn sử dụng các thuộc tính từ lớp Meta của mô hình kế thừa để định cấu hình trường được xác định trong mô hình trừu tượng cao hơn cây thừa kế:Không thể sử dụng lớp Meta của mô hình Django kế thừa để định cấu hình trường được xác định trong mô hình trừu tượng được thừa kế
class NamedModel(models.Model):
class Meta:
abstract = True
verbose_name = 'object'
name = models.CharField("Name",
max_length=200,
db_index=True,
help_text="A meaningful name for this %s." % Meta.verbose_name)
# see what I'm trying to do here?
)
...
class OwnedModel(NamedModel):
class Meta(NamedModel.Meta):
verbose_name = 'owned object'
Tôi muốn văn bản trợ giúp về trường tên của biểu mẫu OwnedModel để nói 'Tên có ý nghĩa cho đối tượng sở hữu này'. Nhưng nó không: từ 'sở hữu' là mất tích, mà sẽ gợi ý rằng verbose_name từ NamedModel.Meta được sử dụng khi mô hình được thiết lập, không phải là OwnedModel.Meta.
Đây không phải là điều tôi mong đợi từ quan điểm thừa kế: có cách nào đó để tạo trường được Meta.verbose_name đề cập đến giá trị trên lớp mô hình không trừu tượng, không phải là lớp trừu tượng mà trường được xác định?
Hoặc tôi có bị trục trặc không?
(Điều này có vẻ giống như một ví dụ nhỏ, và nó là: nhưng nó chỉ là để minh họa cho quan điểm của một cái gì đó quan trọng hơn và phức tạp Tôi cố gắng để làm)
Nhiều cảm ơn trước.
Vâng, tôi nghĩ đó là nó. Đã theo dõi luồng tôi rõ ràng hơn trên vòng đời: các trường được đánh giá khi lớp được phân tích cú pháp, vì vậy thừa kế không được xem xét. Và tôi đã thử các thuộc tính lớp ngoài meta ... cùng một vấn đề. Tôi rất vui khi ghi đè các lớp trường và tôi có thể sử dụng (+ những gì bạn đề xuất) để có được hiệu quả mong muốn. –