Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Веб-разработка и фреймворки > Подскажите пожалуйста как обновить данные


Автор: Colloseum 23.5.2010, 12:37
[Django]

Подскажите пожалуйста как обновлять данные?
при клике на линке edit форма заполняется но происхзодит добавление новой позиции.

Собственно шаблон:
Код

<form method="post" action=".">
  {{ form.as_p }}
  <input type="submit" value="save"/>
</form>
{% for w in e %}
{{ w.name }} |  {{ w.name2 }} |
<a href="/entity/?id={{ w.id }}" class="edit">[edit]</a>
<br/>
{% endfor %}


Модель для неё
Код

class Entity(models.Model):
    name =  models.CharField(max_length=100, unique=True)
    name2 =  models.CharField(max_length=100, unique=True)


Форма
Код

class EntityForm(forms.Form):
    name = forms.CharField(
       label=u'Title',
       widget=forms.TextInput(attrs={'size':32})
    )
    name2 = forms.CharField(
       label=u'Title1',
       widget=forms.TextInput(attrs={'size':32})
    )


и функция представления
Код

def _entity_page(request, form):
    entity, created = Entity.objects.get_or_create(
      name  = form.cleaned_data['name'],
      name2 = form.cleaned_data['name2']
    )
    entity.name  = form.cleaned_data['name']
    entity.name2 = form.cleaned_data['name2']
    entity.save()
    return entity

def entity_page(request):
    testID = 0
    if request.method == 'POST':
        form = EntityForm(request.POST)
        if form.is_valid():
           entity =  _entity_page(request, form)
        testID = 'if request.method == ''POST'':'
    elif 'id' in request.GET:
        testID = 'elif ''id'' in request.GET:'
        idc  = request.GET['id']
        en = Entity.objects.get(id=idc)
        form = EntityForm( {'name':en.name, 'name2':en.name2} )
    else:
        form = EntityForm()
    e = Entity.objects.all()
    return render_to_response('entity.html',
         RequestContext(request,{'form':form, 'e':e, 'idw':testID}))


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)