2013-08-02 3 views
1

модели

class VideoInfo(models.Model): 
    user = models.ForeignKey(User) 
    video_name = models.CharField(max_length=200) 
    director = models.CharField(max_length=200) 
    cameraman = models.CharField(max_length=200) 
    editor = models.CharField(max_length=200) 
    reporter = models.CharField(max_length=200) 
    tag = models.TextField() 

формы

class LoginForm(forms.Form): 
    username = forms.CharField(max_length=50) 
    password = forms.CharField(widget=PasswordInput()) 


class VideoInfoForm(forms.Form): 

    class Meta: 
     model = VideoInfo 
     fields = ['video_type', 'director', 'cameraman', 'editor', 'reporter', 'tag'] 

Просмотров:

class Main(View): 
    '''Index page of application''' 
    def get(self, request): 
     model = VideoInfo 
     form = VideoInfoForm() 
     return render_to_response('main.html', {'form':form}, context_instance=RequestContext(request)) 

Вызывающие в шаблоне, как:ModelForm не отображается в шаблоне Django?

{{form.as_p}} 

форма не отображается, но если я использую LoginForm он появляется. Что я делаю не так?

+0

Вам необходимо наследовать вторую форму от ModelForm, пожалуйста, внимательно прочитайте документы. – mariodev

+0

Да, извините, ребята. – pynovice

ответ

2

Изменение:

class VideoInfoForm(forms.Form): 

To:

class VideoInfoForm(forms.ModelForm): 
1

Как вы хотите использовать форму модели, ваше определение формы не является правильным.

Изменить

class VideoInfoForm(forms.Form): 

в

class VideoInfoForm(forms.ModelForm): 
#  ------------------^ use ModelForm not Form 

Sidenote:

Вместо длинного списка fields использования exclude только список полей, которые не нужны.

class VideoInfoForm(forms.ModelForm): 
    class Meta: 
     model = VideoInfo 
     exclude = ['user',] 
Смежные вопросы