Django管理员raw_id_fields表显示

时间:2010-12-08 16:57:28

标签: django django-admin

Django raw_id_fields不按我期望的方式显示表格,我做错了什么?我正在尝试使用raw_id_fields小部件来编辑ForeignKey字段,如下所示:

#models.py
class OrderLine(models.Model):
    product = ForeignKey('SternProduct')

class SternProduct(models.Model):
    def __unicode__(self): return self.product_num
    product_num = models.CharField(max_length=255)

#admin.py
#import and register stuff  
class OrderLineAdmin(admin.ModelAdmin):  
    raw_id_fields=('product')  

我按预期得到了小文本框和放大镜小部件,但点击放大镜给了我这个: flickr.com/photos/28928816@N00/5244376512/sizes/o/in/photostream /
(抱歉,显然不能发布多个超链接)

我以为我会更接近更改列表页面的c / w列,过滤器和搜索字段。事实上,这显然是what others get

有关如何启用功能更强大的小部件的任何想法?

1 个答案:

答案 0 :(得分:7)

啊,好吧,这应该是显而易见的,但在Django文档中没有解释。 raw_id_fields弹出窗口中显示的列表使用与引用模型的admin对象相同的选项。所以在我的例子中,为了获得一个漂亮的弹出窗口,我需要创建一个SternProductAdmin对象,如下所示:

class SternProductAdmin(admin.ModelAdmin):
    list_display = ('__unicode__', 'drawing_number', 'drawing_revision',)
    list_filter = ('drawing_number',)
    search_fields = ('drawing_number',)
    actions = None

希望这将有助于其他人。