2010-12-08 2 views
2

Django raw_id_fields не отображает таблицы так, как я ожидаю, я делаю что-то неправильно? Я пытаюсь использовать raw_id_fields виджет для редактирования поля ForeignKey следующим образом:Django admin raw_id_fields table display

#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/размеры/о/в/фотопотоку/
(извините, не может размещать более одной гиперссылки видимо)

Я думал, что я хотел бы получить что-то ближе к странице списка изменений с/ш столбцов , фильтры и поля поиска. На самом деле это, по-видимому, what others get.

Любые мысли о том, как включить более функциональный виджет?

+0

Обратите внимание, что это: ('product') не является кортежем, это строка! Чтобы создать кортеж, вам нужно использовать («продукт»,) или просто «продукт», – 2011-01-26 17:34:58

ответ

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 

Надеюсь, это поможет другим в будущем.

Смежные вопросы