列出 django 模型的显示名称

发布于 2024-08-26 03:24:43 字数 1037 浏览 3 评论 0原文

我有一个对象:

POP_CULTURE_TYPES = (
    ('SG','Song'),
    ('MV', 'Movie'),
    ('GM', 'Game'),
    ('TV', 'TV'),
)

class Pop_Culture(models.Model):
      name = models.CharField(max_length=30, unique=True)
      type = models.CharField(max_length=2, choices = POP_CULTURE_TYPES, blank=True, null=True)

然后我有一个函数:

def choice_list(request, modelname, field_name):
     mdlnm = get.model('mdb', modelname.lower())
     mdlnm = mdlnm.objects.values_list(field_name, flat=True).distinct().order_by(field_name)
     return render_to_response("choice_list.html", {
           'model'  : modelname,
           'field'  : field_name,
           'field_list'  : mdlnm })

这为我提供了在 render_to_response 中传递的“field_list”变量中数据库中所有“类型”条目的不同列表。但我不想要一个显示:

SG

MV

的列表我想要一个显示:

歌曲

电影的

列表,如果我在模板中,我可以在单个对象的基础上执行此操作

object.get_type_display

但是我如何获得所有独特的“的列表”输入数据库中的“条目作为其全名以输出到模板中?

我希望这个问题得到了清楚的描述。 。 。

I have an object:

POP_CULTURE_TYPES = (
    ('SG','Song'),
    ('MV', 'Movie'),
    ('GM', 'Game'),
    ('TV', 'TV'),
)

class Pop_Culture(models.Model):
      name = models.CharField(max_length=30, unique=True)
      type = models.CharField(max_length=2, choices = POP_CULTURE_TYPES, blank=True, null=True)

Then I have a function:

def choice_list(request, modelname, field_name):
     mdlnm = get.model('mdb', modelname.lower())
     mdlnm = mdlnm.objects.values_list(field_name, flat=True).distinct().order_by(field_name)
     return render_to_response("choice_list.html", {
           'model'  : modelname,
           'field'  : field_name,
           'field_list'  : mdlnm })

This gives me a distinct list of all the "type" entries in the database in the "field_list" variable passed in render_to_response. But I don't want a list that shows:

SG

MV

I want a list that shows:

Song

Movie

I can do this on an individual object basis if I was in the template

object.get_type_display

But how do I get a list of all of the unique "type" entries in the database as their full names for output into a template?

I hope this question was clearly described. . .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

宁愿没拥抱 2024-09-02 03:24:44

在 choice_list() 的末尾添加类似的内容怎么样?

def choice_list(request, modelname, field_name):
    # ...
    pct = dict(POP_CULTURE_TYPES)
    return [pct[key] for key in mdlnm]

或者在没有 dict() 调用的一行中:

    return [pct[1] for pct in POP_CULTURE_TYPES if pct in mdlnm]

不太漂亮,但它会一直工作,直到遇到更好的东西。

How about something like this at the end of your choice_list()?

def choice_list(request, modelname, field_name):
    # ...
    pct = dict(POP_CULTURE_TYPES)
    return [pct[key] for key in mdlnm]

Or in one line w/o the dict() call:

    return [pct[1] for pct in POP_CULTURE_TYPES if pct in mdlnm]

Not pretty but it will work until to run across something better.

ˉ厌 2024-09-02 03:24:44

您可以使用:

OBJECT.get_FIELD_display()

示例:

content = Pop_Culture.objects.get(...)

ctype = content.get_type_display()

不需要解决方法:)

You could use:

OBJECT.get_FIELD_display()

Example:

content = Pop_Culture.objects.get(...)

ctype = content.get_type_display()

There is no need for workarounds :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文