2017-07-17 160 views
1

我創建了一個簡單的表單,用戶在其中指定(彭博)Ticker的名稱。在第二個字段中,用戶正在輸入網頁的地址。當然,她/他可以手動更正它,但是我想給他/她一個按鈕,以便該應用根據第一個Ticker字段的內容來建議頁面的名稱,例如,用戶輸入「CARMPAT FP股權」,然後應用建議正確 https://www.bloomberg.com/quote/CARMPAT:FP在Django ModelForm中添加一個按鈕

# forms.py 
from django.forms import ModelForm, ValidationError 
from pybloomberg.bloomberg import valid_ticker 

from .models import Symbol 


class SymbolAdminForm(ModelForm): 

    # Have a button next to address field... 

    class Meta: 
     model = Symbol 
     fields = '__all__' 

    def clean(self): 
     cleaned_data = self.cleaned_data 
     ticker = cleaned_data.get('bloomberg_symbol') 
     return cleaned_data 

    def react(self): 
     # extract the content for the bloomberg_symbol field 
     address = ... 
     # manipulate the content for the address field 
     self.... = address 
+0

我應該強調的是,我已經有地圖代碼的功能,以適應已有的建議... – tschm

+0

糾正我,如果我錯了,但你不使用Javascript來實現這一點?這聽起來有點像我的「自動完成」。 – hansTheFranz

+0

好吧,我現在試着避免使用jQuery和Javascript路線。我正在玩目前的HTML模板。請注意,如果用戶正在更改符號/代碼,我不希望進行任何自動更新。 – tschm

回答

0

如果你想自動應用的建議的形式發佈後,您可以將邏輯移到乾淨的()方法和您需要允許地址欄爲空。

def clean(self): 
    cleaned_data = self.cleaned_data 
    ticker = cleaned_data.get('bloomberg_symbol') 
    cleaned_data['address'] = ticker_name_to_address() 
    return cleaned_data 

如果您希望在用戶輸入名稱時向用戶顯示建議,您將別無選擇,只能使用JavaScript。

+0

當然,這是一個選項,但如果有的話,這會覆蓋現有的狀態。我真的想要一個額外的按鈕,如果用戶點擊按鈕,建議只會有影響 – tschm