Tôi đã pored trên các tài liệu Django liên quan đến khung contenttypes nhiều lần, và tôi chỉ đơn giản là không hiểu nó cũng đủ để thực hiện quan hệ chung trong dự án của tôi. Tôi đã tìm kiếm các ví dụ hoặc hướng dẫn trực tuyến về vấn đề này, nhưng tôi không thể tìm thấy một tài liệu duy nhất. Hãy gọi cho tôi câm, nhưng tôi cần một số trợ giúp về điều này (xin vui lòng không trả lời bằng cách đơn giản là liên kết với các tài liệu). Dựa trên việc thiếu tài nguyên trực tuyến, tôi tin rằng nếu bạn trả lời câu hỏi này với một ví dụ kỹ lưỡng, câu trả lời của bạn có thể là ví dụ hữu ích nhất trực tuyến cho đến nay về quan hệ chung của django (tiền thưởng!). Vì vậy, câu hỏi của tôi là: ai đó có thể hiển thị một ví dụ đơn giản về các mô hình và có thể là một vài dòng mã hiển thị cách tương tác với các trường hợp của một mô hình chung không? Không.Django: Ví dụ về các mối quan hệ chung sử dụng khung nội dung?
Là nguồn cảm hứng, đây là những gì tôi tin rằng sẽ là một tình huống rất phổ biến:
Một trang web có mục phương tiện truyền thông được điều trị chủ yếu là giống nhau, nhưng là hơi khác nhau. Ví dụ: giả sử có các mục hình ảnh và video và người dùng có thể "thích" một mục hoặc "nhận xét" trên một mục. Các lượt thích và nhận xét cần được xử lý như nhau, bất kể chúng được đăng trên một mục hình ảnh hay video. Vì vậy, nếu có một ItemView để xem hình ảnh hoặc video trong album của người dùng, có thể thực hiện các loại cuộc gọi sau đây: mediaitem.comments.all()
hoặc len(mediaitem.likes.all())
hoặc comment.user_who_commented
, mà không cần phải biết loại phương tiện đó là gì (hình ảnh hoặc video) .
Tôi tin rằng bạn sẽ cần sáu mô hình cho việc này:
- Tóm tắt
MediaItem
lớp - Hai loại khác nhau của mục phương tiện truyền thông:
ImageItem
vàVideoItem
- Tóm tắt
MediaItemActions
lớp - Hai khác nhau các loại hành động có thể được thực hiện đối với các mục phương tiện:
Like
vàComment
Nếu bạn biết làm thế nào để sử dụng tính năng Django này, xin vui lòng cho chúng tôi xem một ví dụ đầy đủ! Tôi cảm thấy như nó sẽ là một công cụ vô cùng mạnh mẽ và đang đau đớn để sử dụng nó trong ứng dụng của tôi. Rõ ràng hơn, càng tốt.