django之admin调整页面展示

调整列表页展示

1 页大小

每页中显示多少条数据,默认为每页显示100条数据,属性如下:

list_per_page=100

1)打开booktest/admin.py文件,修改AreaAdmin类如下:

class BookInfoAdmin(admin.ModelAdmin):
    list_per_page = 2

2)在浏览器中查看区域信息的列表页面,效果如下图:

 

2 "操作选项"的位置

顶部显示的属性,设置为True在顶部显示,设置为False不在顶部显示,默认为True。

actions_on_top=True

底部显示的属性,设置为True在底部显示,设置为False不在底部显示,默认为False。

actions_on_bottom=False

1)打开booktest/admin.py文件,修改BookInfoAdmin类如下:

class BookInfoAdmin(admin.ModelAdmin):
    ...
    actions_on_top = True
    actions_on_bottom = True

2)在浏览器中刷新效果如下图:

3 列表中的列

属性如下:

list_display=[模型字段1,模型字段2,...]

1)打开booktest/admin.py文件,修改BookInfoAdmin类如下:

class BookInfoAdmin(admin.ModelAdmin):
    ...
    list_display = ['id','btitle']

2)在浏览器中刷新效果如下图:

点击列头可以进行升序或降序排列。

4 将方法作为列

列可以是模型字段,还可以是模型方法,要求方法有返回值。

通过设置short_description属性,可以设置在admin站点中显示的列名。

1)打开booktest/models.py文件,修改BookInfo类如下:

class BookInfo(models.Model):
    ...
    def pub_date(self):
        return self.bpub_date.strftime('%Y年%m月%d日')

    pub_date.short_description = '发布日期'  # 设置方法字段在admin中显示的标题

2)打开booktest/admin.py文件,修改BookInfoAdmin类如下:

class BookInfoAdmin(admin.ModelAdmin):
    ...
    list_display = ['id','atitle','pub_date']

3)在浏览器中刷新效果如下图:

方法列是不能排序的,如果需要排序需要为方法指定排序依据。

admin_order_field=模型类字段

1)打开booktest/models.py文件,修改BookInfo类如下:

class BookInfo(models.Model):
    ...
    def pub_date(self):
        return self.bpub_date.strftime('%Y年%m月%d日')

    pub_date.short_description = '发布日期'
    pub_date.admin_order_field = 'bpub_date'

2)在浏览器中刷新效果如下图:

5 关联对象

无法直接访问关联对象的属性或方法,可以在模型类中封装方法,访问关联对象的成员。

1)打开booktest/models.py文件,修改HeroInfo类如下:

class HeroInfo(models.Model):
    ...
    def read(self):
        return self.hbook.bread

    read.short_description = '图书阅读量'

2)打开booktest/admin.py文件,修改HeroInfoAdmin类如下:

class HeroInfoAdmin(admin.ModelAdmin):
    ...
    list_display = ['id', 'hname', 'hbook', 'read']

3)在浏览器中刷新效果如下图:

6 右侧栏过滤器

属性如下,只能接收字段,会将对应字段的值列出来,用于快速过滤。一般用于有重复值的字段。

list_filter=[]

1)打开booktest/admin.py文件,修改HeroInfoAdmin类如下:

class HeroInfoAdmin(admin.ModelAdmin):
    ...
    list_filter = ['hbook', 'hgender']

2)在浏览器中刷新效果如下图:

7 搜索框

属性如下,用于对指定字段的值进行搜索,支持模糊查询。列表类型,表示在这些字段上进行搜索。

search_fields=[]

1)打开booktest/admin.py文件,修改HeroInfoAdmin类如下:

class HeroInfoAdmin(admin.ModelAdmin):
    ...
    search_fields = ['hname']

2)在浏览器中刷新效果如下图:

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 Djangoadmin 后台中添加图片,需要进行以下步骤: 1. 在你的模型中添加一个 ImageField 字段,例如: ```python from django.db import models class MyModel(models.Model): name = models.CharField(max_length=100) image = models.ImageField(upload_to='images/') ``` 2. 在 admin.py 文件中注册你的模型,并创建一个自定义的模型表单类来处理文件上传,例如: ```python from django.contrib import admin from django.forms import ModelForm from .models import MyModel class MyModelForm(ModelForm): class Meta: model = MyModel fields = '__all__' def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) instance = getattr(self, 'instance', None) if instance and instance.id: self.fields['image'].required = False class MyModelAdmin(admin.ModelAdmin): form = MyModelForm admin.site.register(MyModel, MyModelAdmin) ``` 3. 确保你的 MEDIA_URL 和 MEDIA_ROOT 设置正确,并且在你的 urls.py 文件中添加一个 urlpatterns 来处理 media 文件,例如: ```python from django.conf import settings from django.conf.urls.static import static from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ``` 4. 最后,在 admin 后台中创建或编辑一个 MyModel 对象时,你应该会看到一个可以上传图片的表单字段。 注意:以上代码仅供参考,你需要根据你的具体情况进行调整。 ### 回答2: 在Djangoadmin中添加图片可以通过以下步骤完成: 1. 首先,在你的models.py文件中定义一个模型类,该类包含一个FileField或ImageField字段,用于存储图片。例如: ```python from django.db import models class MyModel(models.Model): # 其他字段... image = models.ImageField(upload_to='images/') ``` 2. 在admin.py文件中注册该模型类,并用Django提供的admin.ModelAdmin类作为参数,例如: ```python from django.contrib import admin from .models import MyModel class MyModelAdmin(admin.ModelAdmin): # 自定义admin界面显示信息 list_display = ['id', 'image'] admin.site.register(MyModel, MyModelAdmin) ``` 3. 在settings.py文件中,添加MEDIA_URL和MEDIA_ROOT的配置,以指定图片上传和访问的路径。例如: ```python MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') ``` 4. 在项目的urls.py文件中,添加一个url模式以处理图片的访问请求。例如: ```python from django.conf.urls import url from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 其他url模式... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ``` 5. 运行Django开发服务器,并通过admin界面创建或编辑MyModel对象时,你将能够选择和上传图片。这些图片将保存在指定的MEDIA_ROOT目录中,并且在页面上以链接或小缩略图的形式进行显示。 希望以上步骤对你有帮助! ### 回答3: 在Djangoadmin后台中添加图片可以通过以下步骤进行操作: 1. 首先,在models.py文件中创建一个模型类,用于保存图片的相关信息,例如图片的名称、描述和图片本身等。同时,为图片字段添加一个FileField或ImageField类型的属性,用于保存上传的图片文件。例如: ```python from django.db import models class Image(models.Model): name = models.CharField(max_length=100) description = models.TextField() image = models.ImageField(upload_to='images/') ``` 2. 接下来,在admin.py文件中注册该模型类,以便在admin后台中能够对图片进行管理。例如: ```python from django.contrib import admin from .models import Image admin.site.register(Image) ``` 3. 运行`python manage.py makemigrations`和`python manage.py migrate`命令,将模型类的更改应用到数据库中。 4. 然后,在admin后台中登录,进入图片管理页面。可以看到已经添加了一个新的模型类Image。点击进入该模型页面,可以添加、编辑和删除图片信息。 5. 在添加或编辑图片信息时,会出现一个用于选择图片文件的文件选择框。点击选择文件按钮,选择本地的图片文件后,点击保存按钮即可将图片上传到服务器。 6. Django会默认将上传的图片文件保存在`MEDIA_ROOT`指定的目录下,可以通过在settings.py文件中设置`MEDIA_ROOT`来指定图片保存的路径。 7. 在模板中显示图片时,可以通过设置图片的URL,使用`{{ image.image.url }}`来获取图片的路径。可以在模板中使用该URL来显示图片,例如: ```html <img src="{{ image.image.url }}" alt="{{ image.name }}"> ``` 这样,就可以在Djangoadmin后台中添加和管理图片了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值