Django创建条目。视图/其他文件中的方法或模型类的方法

时间:2013-01-02 02:15:04

标签: django views models

Django创建条目。

1)如Django docs中所见:

class Article(models.Model):
    user = models.ForeignField(User)
    title = models.CharField(#some_params)
    content = models.CharField(#some_params)
    date = models.DateTimeField(#some_params)

然后在我看来,我可以:

new_article = Article(user=user, title="abc", content="xyz", date = datetime.utcnow())
new_article.save()

2)但它也可以通过调用Article类中的方法来完成,即:

class Article(models.Model):
    user = models.ForeignField(User)
    title = models.CharField()
    content = models.CharField()

    def add_article(self, title, content):  
        self.title = title
        self.content = content
        self.date = datetime.utcnow()
        self.save()

然后在视图中:

title = "abc"
content = "xyz"
new_article = Article(user=user)
new_article.add_article(abc, xyz)

我在问,因为我已经看到了将内容添加到数据库的两种方法。我想问一下:

  1. 什么是更好的做法?
  2. 第二个例子中对安全的担忧?

1 个答案:

答案 0 :(得分:1)

在我看来,选项1是更好的做法。 add_article是不必要的,因为您可以使用日期字段的auto_now属性设置日期,其他所有内容都已内置。您将拥有更少的代码和更少的维护。