2013-05-17 2 views
2

Извините за мой бедный английский ...ModelForm имеет список пустых полей

У меня есть модель под названием ЖИЛЬЯ:

class Habitation(models.Model): 
propr = models.ForeignKey(Client, related_name="proprietaire") 
locat = models.ForeignKey(Client, related_name="locataire", null=True, blank=True) 
etage = models.CharField(max_length=2, blank=True) 
numero = models.CharField(max_length=3, blank=True) 
ad1 = models.CharField(max_length=64) 
ad2 = models.CharField(max_length=64, blank=True) 
cp = models.CharField(max_length=5) 
ville = models.CharField(max_length=32) 

def get_appareils(self): 
    return Appareil.objects.filter(habitation=self) 

def selflink(self): 
    if self.id: 
     return '<a href="/admin/client/habitation/%s" target="_blank">Editer</a>' % str(self.id) 
    else: 
     return 'Indéfini' 
selflink.allow_tags = True 

def __unicode__(self): 
    return u'%s - %s %s' % (self.ad1, self.cp, self.ville) 

С его точки зрения редактирования:

def edit(request, habitation_id): 
habitation = Habitation.objects.get(pk=habitation_id) 

if request.POST: 
    form = HabitationForm(request.POST, instance=habitation) 
    if form.is_valid(): 
     form.save() 
     return redirect('clients') 
else: 
    form = HabitationForm(instance=habitation) 

print form.fields 

return render_to_response('habitations/edit.html', { 
                'habitation_id': habitation_id, 
                'form': form, 
                }, context_instance=RequestContext(request)) 

и его шаблон:

<table> 
    <form action="/habitations/edit/{{ habitation_id }}/" method="post"> 
     {{ form }} 
     {% csrf_token %} 
     {{ form.as_table }} 
    </form> 
</table> 

Для м:

from django import forms 
from client import models 
class HabitationForm(forms.ModelForm): 
    class meta: 
     model = models.Habitation 
     fields = ('propr', 'locat', 'etage', 'numero', 'ad1', 'ad2', 'cp', 'ville',) 

My view (или my ModelForm) не извлекает ни одного поля, поэтому больше не нужно заполнять поле формы. Есть ли у кого-нибудь предложения?

+0

Покажите нам 'определение HabitationForm'. – Rohan

+0

'от Джанго импортных форм от импортных моделей клиента класса HabitationForm (forms.ModelForm): класса мета: модели = models.Habitation поля = ('ProPR', 'нахо', 'ЕТКГЭ', 'Numero' , 'ad1', 'ad2', 'cp', 'ville',) ' –

+1

Лучше обновить вопрос с помощью кода. – Rohan

ответ

2

Название метакласса в форме должно быть Meta не meta.

Update ваша форма для

from django import forms 
from client import models 
class HabitationForm(forms.ModelForm): 

    class Meta: #<---- define with capital M 
     model = models.Habitation 
     fields = ('propr', 'locat', 'tegae', 'numero', 'ad1', 'ad2', 'cp', 'ville',) 
+0

Извините, это был просто глупый вопрос:/ –

+0

Спасибо за ответ –

+0

@NicolasPierrot, если это решает вашу проблему, примите это как ответ. –

Смежные вопросы