我想从内容类型中获取型号名称。
我已经尝试过了....
a = Module.objects.filter(slug =“ sales”)
因此它返回SoftDeletionQueryset
所以在那之后,我做了以下
对于x中的a:print(x.content_type)
因此它返回“销售分析”。那就是Module.content_type字段中的content_type值
我现在有content_type值.....具有3个字段的内容类型模型对吗? app_label,model,name所以我想根据content_type值获取模型名称–
这是我的代码
class Module(BaseModel, SoftDeletionModel):
id = models.AutoField(primary_key=True)
name = models.CharField(
_("Module Name"), max_length=50, default=False, unique=True)
slug = models.SlugField(unique=True)
display_name = models.CharField(
_("Display Name"), max_length=50, default=False)
content_type = models.ForeignKey(ContentType,
blank=True, null=True, on_delete=models.CASCADE)
parent_module_id = models.ForeignKey("Module",
blank=True, null=True, on_delete=models.CASCADE)
order = models.IntegerField(_("Order"), default=0, blank=True, null=True)
class Meta:
db_table = 'modules'
def __str__(self):
return "{0}".format(self.display_name)
答案 0 :(得分:0)
我不太了解这个问题,但我会尽力回答
您使用import matplotlib.pyplot as plt
def map_col(col):
if col == 'y_odd':
mapped_col = 0
elif col == 'y_even':
mapped_col = 1
return mapped_col
x = [1, 4, 2, 7, 4, 9]
y = [4, 1, 3, 6, 8, 2]
c = ['y_even', 'y_odd', 'y_odd', 'y_even', 'y_even', 'y_even']
color = [map_col(col) for col in c]
plt.scatter(x, y, s=100, c=color, cmap="gnuplot")
plt.show()
,它将返回print()
函数的结果。
如果要获取型号名称,则必须使用此代码或content_type
__str__
如果您的意思是确切的类名,
为此,请使用modules = Module.objects.filter(slug="sales")
for m in modules:
print(m.name)
print(m.content_type)
或.__class__.__name__