31
Giả sử tôi đang ở trong mã lưu. Làm thế nào tôi có thể có được tên của mô hình hoặc loại nội dung của đối tượng và sử dụng nó?Làm cách nào để lấy tên của mô hình hoặc loại nội dung của đối tượng Django?
from django.db import models
class Foo(models.Model):
...
def save(self):
I am here....I want to obtain the model_name or the content type of the object
Mã này hoạt động, nhưng tôi phải biết model_name:
import django.db.models
from django.contrib.contenttypes.models import ContentType
content_type = ContentType.objects.get(model=model_name)
model = content_type.model_class()
Nếu bạn có một công cụ trình duyệt cơ sở dữ liệu, bạn có thể thấy rằng một django_content_type được tạo ra. Nó chứa một số trường, như tên, app_label và mô hình. Tôi cần lấy thông tin mô hình đó từ lớp tôi đang ở. – Seitaridis
Trường mô hình là một chuỗi ký tự thường và nó bắt nguồn từ tên lớp. – Seitaridis
Sau đó, hãy làm điều gì đó như 'ct = ContentType.objects.get_for_model (self)', theo sau là 'return ct.app_label' hoặc bất kỳ thuộc tính ContentType nào bạn cần. – gravelpot