Pereiti prie turinio

Django ModelChoiceField


Rekomenduojami pranešimai

Sveiki,

models.py:

class Brandai(models.Model):
   brando_pav = models.CharField(max_length=64)

   def __unicode__(self):
       return u'%s' % (self.brando_pav)

class Prekes(models.Model):
   brandas = models.IntegerField(max_length=3)
   pavadinimas = models.CharField(max_length=164)
   sablonas = models.IntegerField(max_length=3)

class Sablonai(models.Model):
   sablono_pav = models.CharField(max_length=64)

   def __unicode__(self):
       return u'%s' % (self.sablono_pav)

forms.py:

class Nauja_preke(forms.Form):
   prekes_brandas = forms.ModelChoiceField(queryset=Brandai.objects.all().order_by('brando_pav'),
                                           widget=forms.Select(attrs={'class':'selector'}))
   prekes_sablonas = forms.ModelChoiceField(queryset=Sablonai.objects.all().order_by('sablono_pav'),
                                            widget=forms.Select(attrs={'class':'selector'}))
   prekes_pavadinimas = fields.CharField(max_length=164)

html:

{% block content %}
<form method="POST" action="/preke_new/">{% csrf_token %}

   <table>
       {{ preke }}
   </table>

   <p>
       <input type="submit" value="Submit" />
   </p>

</form>
{% endblock %}

views.py:

def preke_new(request):
   if request.method == 'POST':
       nauja_preke = Nauja_preke(request.POST)
       if nauja_preke.is_valid():
           ivedimas_data = nauja_preke.cleaned_data
           a = Prekes(pavadinimas=ivedimas_data['prekes_pavadinimas'],
                      brandas=ivedimas_data['prekes_brandas'],
                      sablonas=ivedimas_data['prekes_sablonas'])
           a.save()
           return render_to_response('rezultatas.html', {'ivedimas_data': ivedimas_data},
                                      context_instance=RequestContext(request))

   return render_to_response('preke_new.html', {'preke': Nauja_preke()},
                              context_instance=RequestContext(request))

Niekaip nerandu būdo, kaip iš ModelChoiceField gauti brando ir šablono 'id'. Peržiūrėjęs iš 'POST' ateinančius kintamuosius, aš matau, kad kintamieji 'prekes_brandas' ir 'prekes_sablonas' turi tuos 'id', bet kai bandau juos įrašyti, jie kažkodėl pavirsta pavadinimais. Pridedu gaunamą rezultatą:

{'prekes_brandas': <Brandai: Chicco>,
'prekes_sablonas': <Sablonai: testinis>,
'prekes_pavadinimas': u'prekes pavadinimas'}

Redagavo meshkis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...