2013-05-02 2 views
0

у меня есть этот form.py:новичку Джанго форма не действительна

class specForm(ModelForm): 
    a = Doctors_list.objects.values_list('specialty', flat=True) 
    specialty = forms.ModelChoiceField(queryset=a) 
    class Meta: 
     model = Doctors_list 

и это views.py:

from django.shortcuts import render_to_response 
from testApp.forms import specForm 

def specForm (request): 
    if request.method == 'POST': 
     form = specForm(request.POST) 
     if form.is_valid(): 
      form.save() 
    else: 
     form = specForm() 
    return render_to_response('hello.html', {'form':form}) 

Когда я запускаю его я получаю на следующие ошибки: specForm() takes exactly 1 argument (0 given) , я suposse это потому, что он считает form недействительно, почему? Как я это исправим?

мой models.py:

class Doctors_list(models.Model): 

    name = models.CharField(max_length=30) 
    specialty = models.CharField(max_length=15) 
    hp_id = models.ManyToManyField(Health_plan) 
    location = models.CharField(max_length=15) 

    def __unicode__(self): 
     return self.name 

Любая помощь оценили

ответ

2

Это имя конфликт между методом def specForm(request) и фактической формы объекта class specForm. Попробуйте переименовать один из них. Моя рекомендация - переименовать метод, поскольку он может быть вызван только с urls.py.

Надеется, что это помогает

2

Не дайте свой класс формы и ваш взгляд то же самое имя.

By convention, ваша форма должна быть названа SpecForm, ваше мнение spec_form (или даже лучше, что-то вроде update_specialty), и ваша модель Doctor.

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