首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Django admin中包装文本(设置列宽)

如何在Django admin中包装文本(设置列宽)
EN

Stack Overflow用户
提问于 2014-08-07 12:15:56
回答 2查看 3.8K关注 0票数 6

我有一个模型项目

代码语言:javascript
运行
复制
class Item(models.Model):
    id = models.IntegerField(primary_key=True)
    title = models.CharField(max_length=140, blank=True)
    description = models.TextField(blank=True)
    price = models.DecimalField(max_digits=12, decimal_places=2, blank=True, null=True)

我的模特儿管理员

代码语言:javascript
运行
复制
class ItemAdmin(admin.ModelAdmin):
   list_display = ['item_view', 'description', 'item_price', 'seller_view', 'added_on']
   actions = ['add_to_staff_picks']
   search_fields = ('description', 'title')

   def item_view(self, obj):
       item = obj
       url = reverse('admin:%s_%s_change' % ('adminuser', 'item'), args=(item.id,))
       if item.is_active:
          return '<font color="green">%s</font>' % (base64.b64decode(item.title))
       return '<font color="red">%s</font>' % (base64.b64decode(item.title))
       item_view.allow_tags = True
       item_view.short_description = 'Title'

我需要在Django管理站点中显示字段“title”(修复title列的宽度)。我怎么能做到这一点。请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-07 13:24:44

如果我正确地理解了您,那么您需要Django管理类的list_display属性。

例"admin.py“

代码语言:javascript
运行
复制
from django.contrib import admin

from path.to.your.app.models import Item

class ItemAdmin(admin.ModelAdmin):
    """
    Your ``Item`` model admin.
    """
    # List here all the fields that are to be displayed in the listing view.
    list_display = ('title', 'description',)

admin.site.register(Item, ItemAdmin)

最新答复(2014-08-08)

您的管理模块:

代码语言:javascript
运行
复制
from django.conf import settings

class ItemAdmin(admin.ModelAdmin):
    # Some other code
    class Media:
        js = (
            '{0}js/jquery-1.10.2.min.js'.format(settings.STATIC_URL),
            '{0}js/jquery.expander.min.js'.format(settings.STATIC_URL),
            '{0}your_app/js/your_code.js'.format(settings.STATIC_URL),
            )

比方说,我们将使用jquery.expander插件https://github.com/kswedberg/jquery-expander

那么您的"your_code.js“将如下所示:

代码语言:javascript
运行
复制
;
$(document).ready(function() {
   // Assuming that your element that would be wrapped comes as second td (column).
   // If not, adjst the nth-child(2). 
   $('#result_list tbody tr td:nth-child(2)').each(function(e) {
        $(this).expander({
            slicePoint:       50,  // default is 100
            expandSpeed: 0,
            expandEffect: 'show',
            collapseSpeed: 0,
            collapseEffect: 'hide',
            expandPrefix:     ' ', // default is '... '
            expandText:       '[...]', // default is 'read more'
            userCollapseText: '[^]'  // default is 'read less'
        });
   });
});
票数 2
EN

Stack Overflow用户

发布于 2017-11-07 14:53:46

Model中添加一个函数,然后在modelAdmin中调用该函数

代码语言:javascript
运行
复制
#Model
def shortTitle(self):
    return str(self.title)[:50]

#modelAdmin
class ItemAdmin(admin.ModelAdmin):
   list_display = ['shortTitle', ...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25182303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档