1

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

例如:我的表格:

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 处理。我不知道这是否有区别。谢谢!

4

1 回答 1

2

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

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

一步一步看代码示例,你就会明白。在一个 Stackoverflow 答案中解释这一切太过分了——而且 Django 文档非常详尽。

于 2013-01-15T22:31:43.617 回答