Django使用选择字段进行保存或模型保存?

时间:2013-01-15 22:02:36

标签: django django-models django-forms

所以我还是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)

我要打电话给表格。我不知道这是否有所作为。谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

逐步完成代码示例,您将理解。在Stackoverflow的一个答案中解释这一切太过分了 - 而且Django文档非常难以理解。