2012-12-11 80 views
0

我將代理程序ID傳遞給我的表單。問題是,我該如何獲取該代理ID,獲取ID,然後使下拉字段默認選擇我通過的代理ID?傳遞變量以形成

如果您使用1.4傳遞變量

<input type="button" name="chargeback" value="Submit Chargeback" href="{% url commissions-chargebacks_insert agent.id %}" /> 

我views.py

def insert(request, agent=None, investment=None, chargeback=None, *args, **kwargs): 
from commissions.forms import ChargebackForm 
context = {} 
selected_agent_id = kwargs['agent_id'] 
if request.POST: 
    form = ChargebackForm(selected_agent_id, request.POST) 
    if form.is_valid(): 
     chargeback = form.save(commit=False) 
     chargeback.total_branch_commission = str(float("-0%s" % chargeback.amount)) 
     chargeback.save() 
     return HttpResponseRedirect(reverse('commissions-chargebacks_browse')) 
    else: 
     request.user.message_set.create(message='Please correct errors and try submitting again.') 
else: 
    form = ChargebackForm(selected_agent_id) 

context['form'] = form 
return render_to_response('commissions/admin/chargebacks/insert.html', RequestContext(request, context)) 

forms.py

class ChargebackForm(forms.ModelForm): 
def __init__(self, selected_agent_id, *args, **kwargs): 
    super(ChargebackForm, self).__init__(*args, **kwargs) 
    self.fields['agent'].queryset = Agent.objects.all().filter(agent_id = selected_agent_id) 

class Meta: 
    model = Chargeback 

    fields = ('agent', 'amount','description','policy_num') 
+0

你能澄清你的問題嗎?通過將代理ID傳遞給表單以及view.py中的哪個位置要使用它,你的意思是什麼?看起來,在這兩段代碼中你都可以訪問agent id(它是'insert'視圖的一個參數,它看起來在模板上下文中),所以我不確定你想要的是什麼做。 – Emily

+0

你不能只在視圖中執行'context ['agent']',並在'template'中訪問它嗎? – karthikr

+0

編輯澄清 – TheLifeOfSteve

回答

0

,您可以使用ChargebackForminitial參數在你看來:

if request.method == 'POST': 
    form = ChargebackForm(
     selected_agent_id, request.POST, initial={'agent':selected_agent_id}) 
else: 
    form = ChargebackForm(selected_agent_id, initial={'agent':selected_agent_id}) 
+0

我沒有使用1.4 – TheLifeOfSteve