我剛剛發現https://github.com/lincolnloop/django-salmonella看起來像這樣會爲任何FK提供原始ID過濾器。
# pip install django-salmonella
from salmonella.admin import SalmonellaMixin
from salmonella.filters import SalmonellaFilter
class UserProfileAdmin(SalmonellaMixin, admin.ModelAdmin):
list_filter = (
('salmonella_fk', SalmonellaFilter),
)
您還可以清理針對grapelli
https://www.abidibo.net/blog/2015/02/06/pretty-raw_id_fields-django-salmonella-and-django-grappelli/
造型在app/templates/salmonella/admin/widgets/salmonella_field.html
{{ hidden_input }}
<a onclick="return showRelatedObjectLookupPopup(this);" id="lookup_id_{{ name }}" data-name="{{ name }}" data-app="{{ app_name }}" data-model="{{ model_name }}" class="related-lookup" href="{{ related_url }}{{ url }}"><img width="16" height="16" alt="Consultazione" src="/static/admin/img/selector-search.gif"></a>
<a data-name="developers" data-app="{{ app_name }}" data-model="{{ model_name }}" class="salmonella-clear-field"></a>
<span class="salmonella_label" id="{{ name }}_salmonella_label"></span>
和app/templates/salmonella/multi_label.html
{% for object in objects %}
<a href="{{ object.1 }}" >{{ object.0 }}</a>{% if not forloop.last %} {% endif %}
{% endfor %}
和樣式表:
.salmonella-clear-field {
background-image: url("/static/grappelli/images/icons/related-remove.png");
background-repeat: no-repeat;
background-position: center center;
display: inline-block;
position: relative;
top: 5px;
margin: 0 5px 0 10px;
height: 15px;
width: 15px;
cursor: pointer;
}
.salmonella_label {
position: inline-block;
position: relative;
top: 2px;
}
.salmonella_label a {
background: #fff;
padding: 2px 5px;
}
您正在尋找['limit_choices_to'](https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models .ForeignKey.limit_choices_to)。 –
@BurhanKhalid謝謝你的回覆。但我需要有機會 選擇任何我想要過濾的用戶,沒有限制,所以'limit_choices_to'不是我的情況下的解決方案。 – neverwalkaloner