Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2012, 22:21
Avatar de Copia
Copia
 
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años
Puntos: 4
tengo errores al producir modelForm

Hola, intento seguir el ejemplo de ModalForm de la documentacion oficial de django pero creo que ya lo tengo todo y tengo un error que no se como solucionar,
El error es al mostrar el formulario, y dice:
----------------------------------------
NameError at /new_book/
name 'TITLE_CHOICES' is not defined
Request Method: GET
Request URL: http://127.0.0.1:8000/new_book/
Django Version: 1.3.1
Exception Type: NameError
Exception Value:
name 'TITLE_CHOICES' is not defined


Tengo los codigos como sigue:
cms/mysite/models.py

Código Python:
Ver original
  1. from django.db import models
  2. from django.forms import ModelForm
  3.  
  4. TITLE_CHOICES = (
  5.     ('MR', 'mr.'),
  6.     ('MRS','Mrs.'),
  7.     ('MS','Ms.'),
  8. )
  9.  
  10. class Author(models.Model):
  11.     name =  models.CharField(max_length=100)
  12.     title = models.CharField(max_length=3, choices=TITLE_CHOICES)
  13.     birth_date = models.DateField(blank=True, null=True)
  14.  
  15.     def __unicode__(self):
  16.         return self.name
  17.  
  18. class Book(models.Model):
  19.     name = models.CharField(max_length=100)
  20.     authors = models.ManyToManyField(Author)
  21.  
  22. class AuthorForm(ModelForm):
  23.     class Meta:
  24.         model = Author
  25.  
  26. class BookForm(ModelForm):
  27.     class Meta:
  28.         model = Book
cms/mysite/forms.py
Código Python:
Ver original
  1. from django import forms
  2.  
  3. class AuthorForm(forms.Form):
  4.     name = forms.CharField(max_length=100)
  5.     title = forms.CharField(max_length=3,
  6.                 widget=forms.Select(choices=TITLE_CHOICES))
  7.     birth_date = forms.DateField(required=False)
  8.  
  9. class BookForm(forms.Form):
  10.     name = forms.CharField(max_length=100)
  11.     authors = forms.ModelMultipleChoiceField(queryset=Author.objects.all())

cms/mysite/views.py
Código Python:
Ver original
  1. # Create your views here.
  2. from django.template.loader import get_template
  3. from django.template import Context
  4. from django.http import HttpResponse
  5. from forms import BookForm
  6.  
  7. def new_book(request):
  8.     if request.method == 'POST':
  9.         form = BookForm(request.POST)
  10.         if form.is_valid():
  11.             return HttpResponseRedirect('/new_book/thanks/')
  12.     else :
  13.         form = BookForm()
  14.         return render_to_response('new_book.html',{'form':form,})

y las urls los tengo asi:
Código Python:
Ver original
  1. from cms.mysite import views
  2.  
  3. urlpatterns = patterns('',  
  4.     (r'^new_book/$', views.new_book),
  5.  
  6. )

----------------------------
cms/mysite/templates/new_book.html

Código HTML:
Ver original
  1. <form action="/set_new_book/" method="post">
  2.     <p><label>Name:</label>
  3.        {{ form.name}}
  4.     </p>
  5.     <p><label>Authors:</label>
  6.        {{ form.authors }}
  7.     </p>
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com

Última edición por Copia; 23/02/2012 a las 22:27