python - Django - Model field to be the sum of other fields -


i trying make 1 field on model (quantidadeimprimir) sum of other fields on same model, going collected through form. trying use property method, when try submit form error: "field 'quantidadeimprimir' doesn't have default value". doing wrong? here's code:

model:

quantidade_pmasc = models.integerfield() quantidade_mmasc = models.integerfield() quantidade_gmasc = models.integerfield() quantidade_ggmasc = models.integerfield() quantidade_xggmasc = models.integerfield() quantidade_pfem = models.integerfield() quantidade_mfem = models.integerfield() quantidade_gfem = models.integerfield() quantidade_ggfem = models.integerfield() quantidade_02inf = models.integerfield() quantidade_04inf = models.integerfield() quantidade_06inf = models.integerfield() quantidade_08inf = models.integerfield() quantidade_10inf = models.integerfield() quantidade_12inf = models.integerfield() quantidade_14inf = models.integerfield()      def _quantidade_imprimir(self):     "retorna quantidade de estampas ser impressa para esta camisa neste evento"     return (self.quantidade_pmasc + self.quantidade_mmasc + self.quantidade_gmasc             + self.quantidade_ggmasc + self.quantidadexggmasc + self.quantidade_pfem             + self.quantidade_mfem + self.quantidade_gfem + self.quantidade_ggfem +             self.quantidade_02inf + self.quantidade_04inf + self.quantidade_06inf +             self.quantidade_08inf + self.quantidade_10inf + self.quantidade_12inf +             self.quantidade_14inf)  quantidadeimprimir = property(_quantidade_imprimir) 

view.py:

from django.core.urlresolvers import reverse django.http import httpresponseredirect django.template import context, loader django.forms.models import modelform_factory django.shortcuts import render_to_response django.template import requestcontext django.forms import modelform eventos.models import camisaevento eventos.models import camisaeventoform  def index(request):     camisas_evento = camisaevento.objects.all()      if request.method == 'post':         form = camisaeventoform(request.post)         if form.is_valid():             try:                                 camisa_levar_evento = camisaevento.objects.get(estampa=form.cleaned_data.get('estampa'), cor=form.cleaned_data.get('cor'))                 quantidade_pmasc = form.cleaned_data.get('quantidade_pmasc')                 quantidade_mmasc = form.cleaned_data.get('quantidade_mmasc')                 quantidade_gmasc = form.cleaned_data.get('quantidade_gmasc')                 quantidade_ggmasc = form.cleaned_data.get('quantidade_ggmasc')                 quantidade_xggmasc = form.cleaned_data.get('quantidade_xggmasc')                 quantidade_pfem= form.cleaned_data.get('quantidade_pfem')                 quantidade_mfem= form.cleaned_data.get('quantidade_mfem')                 quantidade_gfem= form.cleaned_data.get('quantidade_gfem')                 quantidade_ggfem= form.cleaned_data.get('quantidade_ggfem')                 quantidade_02inf = form.cleaned_data.get('quantidade_02inf')                 quantidade_04inf = form.cleaned_data.get('quantidade_04inf')                 quantidade_06inf = form.cleaned_data.get('quantidade_06inf')                 quantidade_08inf = form.cleaned_data.get('quantidade_08inf')                 quantidade_10inf = form.cleaned_data.get('quantidade_10inf')                 quantidade_12inf = form.cleaned_data.get('quantidade_12inf')                 quantidade_14inf = form.cleaned_data.get('quantidade_14inf')                 camisa_levar_evento.quantidade_pmasc = quantidade_pmasc                 camisa_levar_evento.quantidade_mmasc = quantidade_mmasc                 camisa_levar_evento.quantidade_gmasc = quantidade_gmasc                 camisa_levar_evento.quantidade_ggmasc = quantidade_ggmasc                 camisa_levar_evento.quantidade_xggmasc = quantidade_xggmasc                 camisa_levar_evento.quantidade_pfem = quantidade_pfem                 camisa_levar_evento.quantidade_mfem = quantidade_mfem                 camisa_levar_evento.quantidade_gfem = quantidade_gfem                 camisa_levar_evento.quantidade_ggfem = quantidade_ggfem                 camisa_levar_evento.quantidade_02inf = quantidade_02inf                 camisa_levar_evento.quantidade_04inf = quantidade_04inf                 camisa_levar_evento.quantidade_06inf = quantidade_06inf                 camisa_levar_evento.quantidade_08inf = quantidade_08inf                 camisa_levar_evento.quantidade_10inf = quantidade_10inf                 camisa_levar_evento.quantidade_12inf = quantidade_12inf                 camisa_levar_evento.quantidade_14inf = quantidade_14inf                                 camisa_levar_evento.save()             except camisaevento.doesnotexist:                 camisa_levar_evento = form.save()             return httpresponseredirect('')     else:         form = camisaeventoform()         return render_to_response('eventos/index.html', { 'form': form, 'camisas_evento': camisas_evento,}                                   , context_instance=requestcontext(request)) 

template:

<form method="post" action="">     {% csrf_token %}                 <!-- {{ form.as_table }} -->     <table class="form_eventos">         <tr>             <td>estampa: {{ form.estampa }}</td>             <td>cor: {{ form.cor }}</td>         </tr>         <tr>             <td class="subtitulo-form">masculinas</td>         </tr>         <tr>             <td>quantidade p masc.: {{ form.quantidade_pmasc }}</td>             <td>quantidade m masc.: {{ form.quantidade_mmasc }}</td>             <td>quantidade g masc.: {{ form.quantidade_gmasc }}</td>         </tr>         <tr>             <td>quantidade gg masc.: {{ form.quantidade_ggmasc }}</td>             <td>quantidade xgg masc.: {{ form.quantidade_xggmasc }}</td>                             </tr>         <tr>             <td class="subtitulo-form">femininas</td>         </tr>         <tr>             <td>quantidade p fem.: {{ form.quantidade_pfem }}</td>             <td>quantidade m fem.: {{ form.quantidade_mfem }}</td>             <td>quantidade g fem.: {{ form.quantidade_gfem }}</td>         </tr>         <tr>             <td>quantidade gg masc.: {{ form.quantidade_ggfem }}</td>                             </tr>         <tr>             <td class="subtitulo-form">infantis</td>         </tr>         <tr>             <td>quantidade 2 anos: {{ form.quantidade_02inf }}</td>             <td>quantidade 4 anos: {{ form.quantidade_04inf }}</td>             <td>quantidade 6 anos: {{ form.quantidade_06inf }}</td>         </tr>         <tr>             <td>quantidade 8 anos: {{ form.quantidade_08inf }}</td>             <td>quantidade 10 anos: {{ form.quantidade_10inf }}</td>             <td>quantidade 12 anos: {{ form.quantidade_12inf }}</td>         </tr>         <tr>             <td>quantidade 14 anos: {{ form.quantidade_14inf }}</td>         </tr>                     </table>     <br /><input class="button" type="submit" value="incluir estampa" /> </form> 

that's because in model set quantidadeimprimir mandatory. when try save form error.

also having each size field in model bad idea. it's better represent through one-to-many relation.


Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -