怎么在admin中实现对外键属性的筛选
时间: 2024-03-27 07:36:00 浏览: 21
要在Django的`admin`中使用`filter()`或`exclude()`方法对外键属性进行筛选,您可以使用`list_filter`和`list_exclude`选项。
例如,假设您有一个`Author`模型和一个`Book`模型,其中`Book`模型有一个外键字段`author`,指向`Author`模型。如果您想要在`admin`中筛选`Book`模型中`author`为特定国籍的书籍,可以在`BookAdmin`中使用`list_filter`选项:
```python
from django.contrib import admin
from .models import Author, Book
class BookAdmin(admin.ModelAdmin):
list_filter = ('author__nationality',)
admin.site.register(Author)
admin.site.register(Book, BookAdmin)
```
在这个例子中,`list_filter`选项中使用双下划线来访问外键字段`author`的`nationality`属性。这将在`admin`中显示一个过滤器,允许您选择特定国籍的作者来筛选相关的书籍。
您可以使用类似的方式使用`list_exclude`选项来排除特定属性的结果。
希望这可以帮助您在`admin`中筛选外键属性。
相关问题
django怎么实现对外键的模糊查询
在 Django 中,可以使用双下划线(__)来实现对外键的模糊查询。具体来说,假设你有两个模型,一个是 `Book`,另一个是 `Author`,`Book` 模型中有一个字段 `author` 是外键,指向 `Author` 模型中的 `id` 字段。
如果你想要实现对 `Book` 模型中 `author` 字段对应的 `Author` 模型中的 `name` 字段进行模糊查询,可以使用如下代码:
```
from django.db.models import Q
books = Book.objects.filter(Q(author__name__icontains=query))
```
其中,`icontains` 表示忽略大小写的模糊查询,`query` 是你要查询的关键词。这样就可以查询到所有 `author` 字段对应的 `Author` 模型中 `name` 字段包含该关键词的 `Book` 记录了。
怎么在admin中实现呢?
要在Django的`admin`中使用`filter()`或`exclude()`方法对外键字段的特定属性进行筛选,您可以使用`list_filter`和`list_exclude`选项。
例如,假设您有一个`Author`模型和一个`Book`模型,其中`Book`模型有一个外键字段`author`,指向`Author`模型。如果您想要在`admin`中筛选`Book`模型中`author`为特定国籍的书籍,可以在`BookAdmin`中使用`list_filter`选项:
```python
from django.contrib import admin
from .models import Author, Book
class BookAdmin(admin.ModelAdmin):
list_filter = ('author__nationality',)
admin.site.register(Author)
admin.site.register(Book, BookAdmin)
```
在这个例子中,`list_filter`选项中使用双下划线来访问外键字段`author`的`nationality`属性。这将在`admin`中显示一个过滤器,允许您选择特定国籍的作者来筛选相关的书籍。
您可以使用类似的方式使用`list_exclude`选项来排除特定属性的结果。
希望这可以帮助您在`admin`中筛选外键字段的特定属性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)