请提前原谅我 - 我知道这方面有一些问题 - 但我真的没有找到解决方案。
我在 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> 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/