【问题标题】:Can I Destructively Alter My Database in a Django View?我可以在 Django 视图中破坏性地更改我的数据库吗?
【发布时间】:2018-08-03 21:47:13
【问题描述】:

所以我正在加载我的查询集以发送到我的模板。其中一个对象是事故。

现在,每个事件都有一堆属性,比如“状态”和“员工”,所以在我的模板中我可以这样做

// incident.html //

{% for incident in incidents %}
  <h1> {{ incident.employee }} - {{ incident.status }} </h1>
{% endfor %}

现在,为方便起见,我想添加事件之前不存在的新属性,例如“情绪”或其他,我可以添加

// views.py //

def get_context_data(self, **kwargs):
  ...
  for incident in incidents:
        incident.mood = "scary"

然后在我的模板中,我可以访问 event.mood 以及 event.status 和 event.employee。

// incident.html //

{% for incident in incidents %}
  <h1> {{ incident.employee }} - {{ incident.status }} </h1>
  <h3>  It was very {{ incident.mood }} </h3>
{% endfor %}

所以,我想知道的是,如果我在这里不小心,是否有可能搞砸并破坏性地更改数据库?如果我添加

// views.py //

def get_context_data(self, **kwargs):
  ...
  for incident in incidents:
    incident.employee = "Daffy Duck"

我是否会毁掉我的所有数据,并在我的每一次事件中永久地将员工的名字命名为“唐老鸭”?

提前致谢。

【问题讨论】:

    标签: django database templates view


    【解决方案1】:

    只要您不使用.update() 进行更改或在进行更改后致电.save(),这些更改都不会在您的数据库中进行。否则更改只是存储在内存中,因此不是永久的。

    【讨论】:

    • 谢谢!我现在对即将到来的生产合并不那么害怕了。
    猜你喜欢
    • 2015-08-02
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 2011-03-31
    • 2010-10-05
    • 2017-03-03
    • 1970-01-01
    • 2015-03-03
    相关资源
    最近更新 更多