2013-04-02 87 views
0

我想用數據庫數據來模擬我的modelform字段並在單選按鈕中顯示它們。使用數據庫填充modelform字段-django

這是我的ModelForm:

class jobpostForm_detail(ModelForm): 
    class Meta: 

     model = payment_detail 
     fields = ('payment_type','country') 

    widgets = { 

     'payment_type':RadioSelect(), 
      'country':RadioSelect(),  




    } 

    def __init__(self, *args, **kwargs): 
     super(jobpostForm_detail, self).__init__(*args, **kwargs) 

     self.fields['country'].queryset = Country.objects.all() // This is not showing data in radio buttons. 
     self.helper = FormHelper() 
     self.helper.form_class = 'horizontal-form' 
     self.helper.form_id = 'id-jobpostform' 
     self.helper.form_class = 'blueForms' 
     self.helper.form_method = 'post' 
      #self.helper.form_action = '/' 

     self.helper.add_input(Submit('submit_addcontent', 'Pay')) 

     super(jobpostForm_detail, self).__init__(*args, **kwargs) 

國模型:

class Country(models.Model): 

    country_id =    models.AutoField(primary_key=True) 
    country_name =  models.CharField(max_length=255,null=True, unique=True) 

    def __unicode__(self): 
     return unicode(self.country_id) 
     return unicode(self.country_name) 

模板:

<form method="post" action="/portal/next/post/" class="blueForms" id="id-jobpostform"> 


    {% csrf_token %} 

    {% crispy form %} 

    </form> 
This is my view: 

def payment(request): 
    #form = jobpostForm_first() 
    country_list = Country.objects.all() 
    if request.method == 'POST': 
     form = jobpostForm_detail(request.POST) 

     #if form.is_valid(): 
     form.save() 
     return HttpResponseRedirect('/thanks/') 
    else: 
     form = jobpostForm_detail() 
     #form.fields['country'].queryset = Country.objects.all() 

    c = {} 
    c.update(csrf(request)) 

    return render_to_response('portal/display.html',{ 
     'form':form,'country_list':country_list 
    },context_instance=RequestContext(request)) 

我的數據也不會在數據庫中去

我想顯示國家y names ..它顯示我的國家ID爲

回答

0

您可以使用initialForm同時作爲它的對象。

下面是一個例子:

# In views.py 
my_form_obj = FormName(request.POST or None, initial = 
         { 
          'field_name_in_model': Value_from_model, # This field value will be shown in the form when an unbound form is loaded. 
         }) 

更多參考https://docs.djangoproject.com/en/dev/ref/forms/api/#dynamic-initial-values

+0

我上面做了什麼顯示我的國家的身份證。我想顯示名字..你可以告訴我我該怎麼做? –

+0

你的問題並不那麼清楚。我從中得到的是你想顯示某些字段已經從某些模型中獲取的值填充。您既沒有展示模型的結構,也沒有提供更多的信息來獲得幫助。 –

+0

你在說什麼名字和什麼ID? –

0

注意的的Unicode在models.py方法是wrong.you不能使用 「迴歸」 兩次看到這一點。你應該使用

def __unicode__(self): 
     return self.country_name 
相關問題