如有问题: 我可以创建django模型(models.Model),它不会保存在数据库中吗?
原因是我想在我的django管理员中使用它来构建基于forms.ModelForm的自定义表单
答案 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()