2015-08-03 5 views
0

Я пытаюсь поставить поиск администратора по модели в общем внешнем ключе присутствует.admin поиск для общего внешнего ключа django

admin.py

class privacySettingsAdmin(admin.ModelAdmin): 
    fieldsets = (
     (None, { 
      'fields': (
       'field_name', 
       'level', 

      ) 
     }), 
     (('page/article'), { 
      'classes': ('grp-collapse grp-open',), 
      'fields': ('content_type', 'object_id',) 
     }), 
    ) 
    autocomplete_lookup_fields = { 
     'generic': [['content_type', 'object_id']], 
    } 
    search_fields = ('object_id',) 

я могу найти с помощью object_id. Но я хочу искать с помощью feilds этого объекта object_id.

ex. Пользователь имеет внешний ключ для модели. то я хочу найти настройки конфиденциальности этого пользователя, используя username, first_name, email и last_name.

Заранее спасибо.

+0

пожалуйста, покажите ваши модели .... – Mohsen

ответ

0

Try ниже кодов:

В models.py:

class PrivacySettings(models.Model): 
    ... 
    def object_username(self): 
     return self.object.username 
    object_username = property(object_username) 

    def object_first_name(self): 
     return self.object.first_name 
    object_first_name = property(object_first_name) 

    def object_last_name(self): 
     return self.object.last_name 
    object_last_name = property(object_last_name) 

    def object_email(self): 
     return self.object.email 
    object_email = property(object_email) 

В admin.py:

class PrivacySettingsAdmin(admin.ModelAdmin): 
    model = PrivacySettings 
    fieldsets = (
     (None, { 
      'fields': (
       'field_name', 
       'level', 

      ) 
     }), 
     (('page/article'), { 
      'classes': ('grp-collapse grp-open',), 
      'fields': ('content_type', 'object_id',) 
     }), 
    ) 
    autocomplete_lookup_fields = { 
     'generic': [['content_type', 'object_id']], 
    } 
    search_fields = ('object_id', 'object_username', 'object_first_name', 
        'object_last_name', 'object_email') 
+0

Использование @property не работает for me =/ – Anoyz

+0

Я не знаю, что @property не сработало для вас, но я применил некоторые изменения в коде, специально измененный метод определения и реализации свойств ... – Mohsen

+0

Использование 'p = pro perty (function) 'также не работает. Не позволяет мне использовать его в search_fields. Django 1.7 здесь. – Anoyz

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