gpt4 book ai didi

Django 管理员 : ordering items in a selection list

转载 作者:行者123 更新时间:2023-12-03 10:13:56 25 4
gpt4 key购买 nike

关闭。这个问题需要details or clarity .它目前不接受答案。












想改善这个问题吗?通过 editing this post 添加详细信息并澄清问题.

8年前关闭。




Improve this question




我有 2 个模型:产品和类别。
当我在管理界面中创建新产品时,我必须在列表中选择一个类别。但我想通过命名这个我的列表来订购这些类别。在网上搜索后,我还没有找到解决方案。

有没有办法做到这一点 ?

最佳答案

您可以在模型定义的元类中设置默认排序:

class Category(models.Model):
name = models.CharField(...)
[ other fields ... ]
class Meta:
ordering = ['name']

这样,默认情况下,将在名称字段上对 Category 的任何查询进行排序。如果不必要的排序会影响应用其他 View /位置的性能,这可能是一个缺点。除此之外,您还可以修改 admins.py 中的排序。其基础看起来像这样。您需要将此代码段调整为您的特定应用程序:
from django import forms
from django.contrib import admin
from my_project.my_app.models import Category, Product

class ProductAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
field = super(ProductAdmin, self).formfield_for_dbfield(db_field, **kwargs)
if db_field.name == 'category':
field.queryset = Category.objects.all().order_by('name')
return field
list_display = ('...', '...', ...)
[ other admin definitions ... ]
admin.site.register(Product, ProductAdmin)

这个 SO 问题的公认答案增加了另一个解决方案:
Django Admin: Ordering of ForeignKey and ManyToManyField relations referencing User

关于Django 管理员 : ordering items in a selection list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18031939/

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