Tôi muốn lọc dữ liệu bằng Django (admin.py) bằng văn bản viết trong hộp văn bản đầu vào HTML. Tôi cần lọc các công ty theo thành phố mà họ đang ở và danh sách tất cả các thành phố quá dài. Tôi muốn thay thế danh sách tất cả các thành phố trong bộ lọc bằng một đầu vào văn bản. Tôi tìm thấy một cái gì đó tương tự đây http://djangosnippets.org/snippets/2429/ nhưng có hai vấn đề:Hộp văn bản đầu vào HTML trong bộ lọc Django admin.py
- tác giả không gửi models.py, vì vậy nó được difficuilt để thay đổi mã cho nhu cầu của tôi (+ Chưa có cảm nhận)
- có được sử dụng lớp UserFieldFilterSpec (RelatedFilterSpec): nhưng tôi cần phải sử dụng AllValuesFilterSpec thay vì RelatedFilterSpec (nhiều hơn trong tập tin django/contrib/admin/filterspecs.py), bởi vì danh sách các thị trấn trong cùng một lớp như comapny (có shoud bởi lớp của thị xã và họ nên đề cập đến công ty bằng chìa khóa nước ngoài (mối quan hệ ManyToMany), nhưng vì một số lý do nó phải được thực hiện theo cách này)
phần quan trọng của models.py trông giống như sau
class Company(models.Model):
title = models.CharField(max_length=150,blank=False)
city = models.CharField(max_length=50,blank=True)
và một cái gì đó từ admin.py
class CatalogAdmin(admin.ModelAdmin):
form = CatalogForm
list_display = ('title','city')
list_filter = ['city',]
Vì vậy, một lần nữa, tôi cần phải: 1. thay vì danh sách các thành phố od hiển thị một văn bản đầu vào trong bộ lọc Django 2. Sau khi nhập thành phố neme trong văn bản đó, dữ liệu lọc theo thành phố (yêu cầu lọc có thể được gửi bằng một số nút gửi hoặc thông qua javascript)
Cảm ơn hàng năm cho tất cả các bài đăng.
Đây là thực sự không phải là điều tôi đang tìm kiếm. Vấn đề của tôi là hiển thị bộ lọc nhập văn bản làm việc. Tính năng Tự động điền là tốt đẹp và tôi muốn thêm nó sau này. Dù sao, cảm ơn bạn đã trả lời của bạn. – Jazzuell
ok tôi đã tự mình tìm ra điều này. Tôi đã tạo bộ lọc của riêng mình trong filterspecs.py (Tôi biết rằng đó là cách khó chịu để thực hiện). Nếu bạn thử nó theo cách này là cẩn thận về việc đăng ký bộ lọc của bạn. Bộ lọc của bạn phải được đăng ký trước bộ lọc hệ thống. Hơn trong models.py gán bộ lọc của bạn để phân phối nó thuộc về. Trong bộ lọc tôi đã sử dụng thứ gì đó thay đổi được đăng url ở đâu là các tham số. Lọc bởi một thành phố được thực hiện bởi thành phố = Prague nhưng nếu bạn muốn lọc theo danh sách các bộ lọc bạn sử dụng city__in = Prague, Wien, Dublin. Có rất nhiều cách đẹp hơn để làm điều này (truy vấn, AJAX, ..) nhưng tôi chỉ đang học. – Jazzuell