2013-01-15 218 views
1

所以我对Django还是个新手。我的表单中有一个字段。我只是想知道我是否需要一个表单保存功能或模型保存功能?什么时候适合使用或者?Django表单保存或模型保存与选择字段?

例如:我的表格:

class OpinionStatusForm(forms.Form): 
    choices = (('0', "Your Status"), ('1', "This"), ('2', "That"), ('3', "The Other")) 
    status = forms.CharField(max_length=2, widget=forms.Select(choices=choices, attrs={'class':'status_dropdown','onchange': 'this.form.submit();'}), required=False) 

    def save(self, opinion_status): 
     opinion_status.status = self.cleaned_data['status'] 

我的模型:

class OptionStatus(models.Model): 
    user = models.ForeignKey(User, null=True, unique=True) 
    status = models.CharField(max_length=2, choices=opinion_statuses) 
    opinion = models.ForeignKey(Opinion, null=True, blank=True) 

    def __unicode__(self): 
     return self.status 

    def save(self, *args, **kwargs): 
     super(OpinionStatus, self).save(*args, **kwargs) 

我将成为AJAX-ING形式。我不知道这是否有所作为。谢谢!

回答

2

你真正需要的是一个ModelForm。在你的例子中,你正在使用一个标准的forms.Form。这不是绑定到模型实例。因此,也不需要保存方法。最好的例子是Django文档里面确实给出:

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/

一步一步走到了代码示例,你就会明白。在一个Stackoverflow答案中解释全部内容太多了 - 而且Django文档是令人难以置信的彻底。