python - Django - 不保存在 PostGresql 数据库中

标签 python mysql django

请提前原谅我 - 我知道这方面有一些问题 - 但我真的没有找到解决方案。

我在 Django 上工作,我想填充一个通过我制作的模型创建的 Postgresql 表。
我还创建了我的表单、我的 html 页面(模板)和我的 View 。我没有错误消息,但数据库中没有创建任何内容。

这是我的 model.py

class ModForm1(models.Model) :
    utilisateur = models.CharField(max_length=100)
    description = models.CharField(max_length=500)
    date = models.DateTimeField(auto_now_add=True, auto_now=False,
                                verbose_name="Date de parution")

    def __unicode__(self):
       return "{0} {1} {2} {3} ".format(self, self.utilisateur, self.description, self.date)  

这是我的 form.py

class ModForm1Form(ModelForm):
    class Meta:
    model = ModForm1
    fields = '__all__'

这是我的模板:

<div class="container">
    <div style="width:30%">
        <form role="form" action="." method="post">
            <div class="col-xs-12">
                <legend><i class="icon-group"></i>&nbsp;Authentification</legend>

                {% csrf_token %}
                <div class="form-group">
                    <label for="example-text-input">Utilisateur</label> {{ form.utilisateur }}
                </div>
                <div class="form-group">
                    <label for="example-text-input">Description</label> {{ form.description }}
                </div>

                <input class="btn btn-primary" type="submit" value="submit" />
        </form>

      </div>
</div>

这是我的观点.py

def addentry(request):
    form = ModForm1Form(request.POST)
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        if form.is_valid():
            # process the data in form.cleaned_data as required
            # ...
            # redirect to a new URL:
            form.save()
            return HttpResponseRedirect('.')
            #messages.error(request, "Error")

    # if a GET (or any other method) we'll create a blank form
        else:
            messages.error(request, "Error")

    return render(request, 'addentry.html', {'form': form})

我阅读了 StackOverflow 中几乎所有相关问题,但我真的陷入困境。我真的不明白为什么我的数据库中没有写入任何内容。
你能看一下并帮助我吗?

谢谢!
朱利安

编辑-setting.py中的数据库配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'django',
        # The following settings are not used with sqlite3:
        'USER': 'julien',
        'PASSWORD': '***',
        'HOST': 'localhost',                      # Empty for localhost through domain sockets or           '127.0.0.1' for localhost through TCP.
        'PORT': '5432',         
    }
}

最佳答案

您想使用 mysql 数据库,但在 settings.py 中您设置了 'ENGINE': 'django.db.backends.postgresql_psycopg2' 此设置不适用于 PostgreSQL对于MySQL。您必须将此字符串更改为以下内容: 'ENGINE':'django.db.backends.mysql'

希望这对您有所帮助。

关于python - Django - 不保存在 PostGresql 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081936/

相关文章:

mysql - 使用 mysql 查询选择小于当前日期的记录?

django - 使用 django (wkhtmltopdf) 创建 PDF

python - 无法计算两个日期之间的工作日?将 dtype ('<M8[ns]' ) 转换为 dtype ('<M8[D]' )?

python - 添加 `row_number()`后如何保留sqlalchemy模型?

c# - 刷新通过设计器添加的datagridview

php - 在 PHP 中的 mysqli 准备语句中使用 REGEXP

python - 防止用户多次提交喜欢或不喜欢的信息

python - DRF通过功能传输错误

python - Selenium Python 3.0.0b2 与最新的 Firefox 发布版本 48.0 不兼容

用于激活并保持打开 Virtualenv 的 Python 脚本