我可以创建django模型,它不会持久存储在数据库中吗?

时间:2014-03-27 14:17:14

标签: django django-models django-forms django-admin

如有问题: 我可以创建django模型(models.Model),它不会保存在数据库中吗?

原因是我想在我的django管理员中使用它来构建基于forms.ModelForm的自定义表单

2 个答案:

答案 0 :(得分:3)

您可以覆盖模型的save()方法以防止保存到数据库,并使用managed = False阻止Django创建相应的表:

class NonPersistantModel(models.Model):
    def save(self, *args, **kwargs):
        pass

    class Meta:
        managed = False

请注意,当批量操作尝试保存此模型的实例时,这会引发错误,因为save方法不会被使用且表格不存在。在您的用例中(如果您只想使用模型构建ModelForm),这不应该是一个问题。

但是,我强烈建议您将表单构建为forms.Form的子类。模型是数据库表的抽象,普通表单能够生成ModelForm生成的任何内容,甚至更多。

答案 1 :(得分:0)

使用forms.Form更容易:

class UserForm(forms.Form):
    first_name = forms.CharField(max_length=100)
    last_name = forms.CharField(max_length=100)
    email = forms.EmailField()