【问题标题】:inserting data into django db issues (nothing inserts)将数据插入 django db 问题(没有插入)
【发布时间】:2019-05-27 04:09:15
【问题描述】:

我有以下代码,试图将表单数据插入数据库。

我没有收到错误,但没有插入任何内容,谁能告诉我为什么?

查看

from .models import Todo
def create_task(request):
    if request.method == 'POST':
        creator = request.user
        assignee = request.POST.get('assignee') 
        task = request.POST.get('task') 
    i = Todo.objects.create(creator=creator, assignee=assignee, text=task, complete='FALSE')
    i.save(force_insert = True)

型号

class Todo(models.Model):
    creator = models.CharField(max_length=400, default="none")
    text = models.CharField(max_length=400)
    complete = models.BooleanField(default=False)
    assignee = models.CharField(max_length=400, default="none")
    def __str__(self):
        return self.text

网址

urlpatterns = [
    url(r'^$', views.todo, name='index'),
    url(r'^$', views.create_task, name='index'),

【问题讨论】:

  • 您有两个完全相同的 url 路径。第二个 url 永远不会触发。
  • 如果我希望数据仍然返回主页,我将如何设置?抱歉,对它很陌生...我只是将名称从 index 更改为其他名称吗?

标签: django database python-3.x


【解决方案1】:

首先,改变你的网址,使它们不同:

url(r'^$', views.todo, name='index'),
url(r'^create/$', views.create_task, name='create'),

现在,当您发出 POST 请求或提交表单时,您将其发送到 /create/

如果要在创建模型后将用户返回到index 页面,可以使用redirect 函数。

from django.shortcuts import redirect

def create_task(request):
    # save data ...
    ...
    return redirect('index')

【讨论】:

  • 你是最棒的!谢谢
猜你喜欢
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多