在我有我使用這些模型Django應用程序:濾波Django管理字段值的列表,基於之前的字段值選擇
- 局
- 客戶
- 簡介
一個Client
只能有一個Agency
和Agency
可以有很多Clients
。
當我編輯/創建Profile
我首先選擇Agency
,然後我可以選擇多個Clients
(這是可以的)。
我的問題是,在Clients
字段中,我看到所有現有的Clients
,而我只想看到與所選Agency
相關的僅Clients
。我怎樣才能做到這一點?
謝謝!
在我有我使用這些模型Django應用程序:濾波Django管理字段值的列表,基於之前的字段值選擇
一個Client
只能有一個Agency
和Agency
可以有很多Clients
。
當我編輯/創建Profile
我首先選擇Agency
,然後我可以選擇多個Clients
(這是可以的)。
我的問題是,在Clients
字段中,我看到所有現有的Clients
,而我只想看到與所選Agency
相關的僅Clients
。我怎樣才能做到這一點?
謝謝!
如果您正在編輯配置文件,您可以使用「formfield_for_manytomany」https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_manytomany或「formfield_for_choice_field」爲客戶端字段編寫過濾器。
但是爲了創建配置文件,只能用javascript afaik更改客戶端列表。在管理表單上這可能是一件棘手的事情。
爲什麼你不只是選擇客戶,並忽略該機構的表格?您可以使用驗證器驗證選擇。
另外我的另一位朋友告訴我,這隻能使用客戶端JavaScript(ajax),但是...對我來說看起來很奇怪。我的意思是,這是一個非常常見的任務,奇怪的是,這個特性並沒有集成在django本身中。 –
這個應用程序可以幫助,我想(Django應用程序來處理鏈接的示範田) - 在PyPI將https://github.com/digi604/django-smart-selects
我試過使用智能選擇,但是當我嘗試編輯配置文件時,出現此錯誤:列agencies_userprofile.clients_id不存在 LINE 1:... e「。」user_id「,」agencies_userprofile「。 agency_id 「 」機構_... 這是我如何使用它: 客戶= ChainedForeignKey( 客戶端, chained_field =「 代理」, chained_model_field = 「代理」, SHOW_ALL =假 auto_choose =真 ) –
@AndreaGrandi嘗試運行manage.py syncdb – ndpu
據我所知,syncdb不ALTER表(因爲這個原因使用南方工具),但我可以嘗試。 這是輸出: ./manage.py執行syncdb 創建表... 安裝自定義的SQL ... 安裝索引... 從0固定裝置(S) –
如果你提供,你已經寫了這麼一段代碼就更好了遠。 – alecxe