gpt4 book ai didi

python - 使功能可供所有模型使用

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:11 24 4
gpt4 key购买 nike

我的一个模型中有以下功能

def get_fields(self):
return[(field.name, field.value_to_string(self)) for field in MusicPack._meta.fields]

这可以帮助我迭代模型的所有字段并将它们显示到模板中。如何在我的所有模型中实现这一点,而不需要在数据库中的每个模型中复制这两行?

我是否可以创建一个包含所有模型函数的父类(super class),然后让我的所有模型成为它的子类?

模板.html

<div id = "subtemplate">
<ul>
{% for model in object_list %}
<div class = modeldiv>
{% for name,value in model.get_fields %}
<li>
{% if value %}
{{ name|capfirst }} : {{ value }}
{% endif %}
</li>
{% endfor %}
</div>
{% empty %}
<li> No objects created yet. </li>
{% endfor %}
</ul>
</div>

最佳答案

你可以使用 Mixins。

示例

class Mixin(object):
def get_fields(self):
return[(field.name, field.value_to_string(self)) for field in self.__class__._meta.fields]

class A(models.Model, Mixin):
...

class B(models.Model, Mixin):
...

关于python - 使功能可供所有模型使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23720110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com