2014-03-27 36 views

回答

1

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

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

    class Meta: 
     managed = False 

注意,当批量操作试图保存该模型的情况下,这将产生一个错误,因为save方法将不被使用,并且该表将不存在。在你的用例中(如果你只想用这个模型来构建一个ModelForm)这应该不成问题。

但是,我强烈建议您将表单建立为forms.Form的子类。模型是数据库表的抽象,而普通形式可以生成任何生成的任何东西,等等。

+0

我无法判断,如果这个建议是最好的做法,或只是一些作品。在极端情况下,如果我要使用带有信用卡信息的模型,这意味着它不能永久保存到数据库中,那么应该编写代码?非常感谢 – fernandosjp

0

它很容易,只需使用forms.Form

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

但是,如何在django admin中轻松地绑定它? – andi

+0

这方面有不少指南,但这并不容易。你基本上必须创建一个视图,添加一个url到管理网址并扩展一个管理模板。 – Koed00

相关问题