【问题标题】:display in db fields assigned strings rather than integer在 db 字段中显示分配的字符串而不是整数
【发布时间】:2015-09-20 14:12:16
【问题描述】:

在数据库中,我已经为字符串存储/分配了给定的名称。例子, 0- 不计划,1- 计划。

在管理界面中,我只想显示字符串名称(不是计划、计划)而不是字符串编号 (0,1)。

提前谢谢..

【问题讨论】:

  • 您的意思是您的模型中有 IntegerField 并希望在管理界面中将其显示为字符串? (如果元素为 0 则显示 'Not schedule',否则如果元素为 1 则显示 'schedule')?
  • 是的,在列表显示和列表过滤器中显示 django 管理界面。你能帮帮我吗?

标签: django django-forms django-admin


【解决方案1】:

选择报告类型 病例报告类型 当为 0 时,“不调度” 当 1 然后 'Shedule' 以 TYPE 结尾 从 report

请参考上面的例子。

【讨论】:

    【解决方案2】:

    您可以在模型中定义新方法。

    class Meeting(models.Model):
        schedule = models.IntegerField()
    
        def as_string(self):
            return 'Not Schedule' if self.schedule is 0 else 'Schedule'
    

    并在 admin.py 文件中导入您的模型。

    class MeetingAdmin(admin.ModelAdmin):
        list_display = ('as_string',)
    
    
    admin.site.register(Meeting, MeetingAdmin)
    

    像上面的代码一样注册它。

    如果你只有 (0, 1) ,你可以使用布尔字段来代替。

    更多价值。

    values = {
        0: 'Not Schedule',
        1: 'Schedule',
        2: 'hold'
    }
    
    
    class Meeting(models.Model):
        schedule = models.IntegerField()
    
        def as_string(self):
            return values[self.schedule]
    

    【讨论】:

    • 如果我们有超过 10 个赋值,我们如何执行?
    • 你的意思是 (0, 1, 2, 3, ..., 9) 而不是 (0, 1)
    • 为什么不将这些值设为静态并返回。
    • 如何显示字符串名称而不是整数list_filter和list_display?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多