raw_id_fields:如何显示名称而不是id?
自定义一个Django管理面板,我使用raw_id_fields从模型中选择一个拥有数千个元素的ForeignKey,因为默认的选择框下拉菜单对于如此多的元素来说是不方便的。raw_id_fields:如何显示名称而不是id?
它的工作原理,但它显示的ID可以看出这个形象:
是否有任何的方式来显示,而不是ID名称或其他领域?或者,有没有比使用raw_id_fields更好的方法来实现这一点?
谢谢!
**** ****更新
这是我在models.py代码:
class Structure(MPTTModel):
name = models.CharField(max_length=200, unique=True, verbose_name = _('name'))
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', verbose_name = _('parent'))
def __unicode__(self):
return u"%s" % (self.name)
在admin.py:
class StructureAdmin(tree_editor.TreeEditor):
search_fields = ('name',)
raw_id_fields = ('parent',)
有关的表示物体使用__unicode__
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
在Python 3中使用
def __str__(self):
感谢您的回答。我已经使用__unicode__。我用我在模型中使用的代码更新了问题。也许我错过了什么...... – 2013-03-03 22:38:42
是'结构'你的FK表?你需要在FK模型上使用unicode。 – 2013-03-04 10:30:31
是的,它是自己的TreeForeignKey:'parent = TreeForeignKey('self',[]]' – 2013-03-04 11:23:24
我也研究过这个,我不认为这是可能的。我认为你能做的最好是旁边显示原id字段的字段的Unicode:http://djangosnippets.org/snippets/2108/
或者,您可以显示Unicode和值的相应的管理变革页面的链接:http://djangosnippets.org/snippets/2217/
感谢您的回答。我试过最后一个片段,但它只显示保存结构时的Unicode和链接,然后再次打开它。你知道我怎么能显示相同的,但是当我选择raw_id? – 2013-04-02 18:55:09
@ A.Vila我有同样的行为,你有任何其他的选择? – elsadek 2014-06-25 06:59:02
它似乎这个插件:https://github.com/lincolnloop/django-salmonella
你想要做什么:
(从文档复制):
使用
要开始在你的应用程序中使用Django的沙门氏菌所有你需要做的是落实SalmonellaMixin在你的ModelAdmin类,并添加所需的字段salmonella_fields列表:
from salmonella.admin import SalmonellaMixin
class UserProfileAdmin(SalmonellaMixin, admin.ModelAdmin):
salmonella_fields = ('user',)
您可以在管理员使用沙门氏菌部件过滤器,以及:
from salmonella.admin import SalmonellaMixin
from salmonella.filters import SalmonellaFilter
class UserProfileAdmin(SalmonellaMixin, admin.ModelAdmin):
list_filter = (
('salmonella_fk', SalmonellaFilter),
)
适合我。 – 2017-12-20 03:26:48
http://stackoverflow.com/questions/2809122/how-to-show-raw-id-value-of-a-manytomany-relation-in-the-django-admin – catherine 2013-03-20 03:08:55
如果你只是想摆脱巨大的数据加载和编辑是不需要的,使用'readonly_fields =('parent',)'。 – Ali 2013-12-03 11:21:55