简体   繁体   English

管理员搜索通用外键django

[英]admin search for generic foreign key django

I am trying to put admin search on model in generic foreign key is present. 我试图将管理员搜索放在通用外键中的模型上。

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',)

i am able to search using object_id . 我能够使用object_id进行搜索。 But i want search using the feilds of that object_id object. 但是我想使用那个object_id对象的领域进行搜索。

ex. 例如 User has a foreign key to model. 用户具有外键进行建模。 then i want to search privacy setting of that user using username , first_name , email and last_name . 然后我想使用usernamefirst_nameemaillast_name搜索该用户的隐私设置。

Thanks in advance. 提前致谢。

Try below codes: 请尝试以下代码:

In models.py: 在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)

In admin.py: 在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')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM