我使用的是 Windows,没有 virtualenv。我使用 Pip 安装了 psycopg2,还安装了最新版本的 PostgreSQL。
当我运行时./ manage.py dbshell,出现以下错误:
CommandError: You appear not to have the 'psql' program installed or on your path.
Run Code Online (Sandbox Code Playgroud)
当我跑步时./ manage.py dbshell psql,我得到这个:
usage: manage.py dbshell [-h] [--version] [-v {0,1,2,3}] [--settings SETTINGS]
[--pythonpath PYTHONPATH] [--traceback] [--no-color]
[--database DATABASE]
manage.py dbshell: error: unrecognized arguments: psql
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些关于此错误的其他帖子,但我不明白为什么这对我不起作用。我已正确配置所有设置,并安装所有正确的应用程序。
我的设置.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': '********',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我没有将 Postgres 的 /bin …
我已经针对此错误搜索了每个Stack Overflow问题,但没有一个响应有帮助.我在尝试访问此特定模型的管理页面(AgentBasicInfo)时收到此错误.
'manage.py makemigrations'工作正常.'manage.py migrate'也运行正常.'manage.py runserver'工作正常,整个网站工作正常,直到我尝试进入此模型的管理页面.
该应用已正确安装在settings.py中的INSTALLED_APPS中.我正在使用Postgres作为数据库.
我试过了...
这个模型(见下面的代码)非常基础.我的项目中还有其他几个模型,它们在管理员中运行得很好,但只是这个特定的模型不起作用.
models.py
class AgentBasicInfo(models.Model):
preferred_email = models.EmailField()
office_phone_number = models.IntegerField()
brokerage_of_agent = models.CharField(max_length=50)
agent_title = models.CharField(max_length=20)
def __str__(self):
return self.preferred_email
Run Code Online (Sandbox Code Playgroud)
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'lagger123',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
Run Code Online (Sandbox Code Playgroud)
0001_initial.py
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='AgentBasicInfo',
fields=[ …Run Code Online (Sandbox Code Playgroud) 当我尝试浏览我的listing_public页面时,在标题中出现错误,无法弄清楚原因.
views.py
def listing_public(request, pk):
listing = get_object_or_404(BuyerListing, pk)
return render (
request,
'listing_public.html',
context={'listing':listing}
)
Run Code Online (Sandbox Code Playgroud)
urls.py
url(r'^listing/(?P<pk>\d+)/$', views.listing_public, name='listing_public'),
Run Code Online (Sandbox Code Playgroud)
模板标签
{% url 'listing_public' pk=listing.pk %}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误。我知道您通常会收到此错误,因为数据库未正确迁移。
当我运行时heroku local web,该网站在我访问时运行良好localhost:5000。
但是,在我将应用程序部署到 heroku 后git push heroku master,错误出现了。
换句话说,它适用于我的本地环境。但是部署到heroku后它不起作用。
我在 heroku 中安装了 Heroku-Postgres 作为附加组件。
什么可能导致这种情况?
我目前使用的是一个带有标准设置的 PostgreSQL 数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': password,
'HOST': 'localhost',
'PORT': '',
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我可以继续使用默认的 postgres 设置,而只是CREATE EXTENSION postgis在 shell 中执行以访问 postgis 功能吗?或者我需要单独添加一个postgis数据库,如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': password,
'HOST': 'localhost',
'PORT': '',
}
'geodata': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'geodjango',
'USER': 'geo',
},
}
Run Code Online (Sandbox Code Playgroud) 我有一个拥有 20 年销售历史的房地产应用程序。我想将最近 2 年的列表放入一个将被主动查询的模型中,将另外 18 年的列表放入一个存档模型中。
我正在使用 Django 1.11 和 Postgresql 9.5
我有限的数据库管理知识告诉我这称为“水平分区”或“分片”。有没有一种聪明的方法可以在 Django 中进行设置?或者我只需将相同的字段名称复制并粘贴到 和ListingActive中ListingArchive?
class ListingActive(models.Model):
data1 = models.IntegerField()
data2 = models.CharField(max_length=10)
...
data100 = models.CharField(max_length=20)
class ListingArchived(models.Model):
same fields as ListingActive
Run Code Online (Sandbox Code Playgroud)
后续问题。我想同时执行水平分区和垂直分区。
假设每个Listing模型中总共有 100 个字段,但只有 10 个字段被主动查询。其他90个字段是显示详细信息,永远不会被查询。
最后,我想要总共 4 个模型,如下所示。有没有办法使用抽象模型或其他方法来设置它?
class ListingActiveQuery(models.Model):
actively_queried_data_1 = models.IntegerField()
actively_queried_data_2 = models.IntegerField()
...
actively_queried_data_10 = models.IntegerField()
details = models.OneToOneField(ListingActiveDetails)
class ListingActiveDetails(models.Model):
data_1 = models.IntegerField()
data_2 = models.IntegerField()
...
data_90 = models.IntegerField()
class …Run Code Online (Sandbox Code Playgroud) 我正在将 JSON 文件(来自 ajax 调用)转换为 CSV。
当JSON文件发送给我时,它是80kb。
当我将 JSON 文件的内容保存到 .txt 文件中时,它变成了 291kb!
将 .txt 文件转换为 .csv 文件后,大小为 240kb。
我从 ajax 调用收到的 JSON 文件如何比我创建的具有相同内容的 .txt 文件小得多?有没有办法减小最终产品的尺寸?
编辑:
这就是我获取文件大小的方式。
编辑:
我不认为 .txt 到 .csv 转换问题是问题,但这是我的代码:
import json
import csv
import re
with open('jjj.txt') as f:
f = f.read()
parsed = json.loads(f)
unix_time = re.compile(r'(\d\d\d\d\d\d\d\d\d\d\d\d\d)')
data = parsed['d']['tables'][0]['rows']
for i in data:
for a in …Run Code Online (Sandbox Code Playgroud) 假设我有一个包含10个数字的列表: a = [0,1,2,3,4,5,6,7,8,9]
我想得到第二位数字,第5-8位数字和最后一位数字.就像是:
for i in (a[1], a[4:7], a[9]):
print(i)
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我有以下型号:
class Address(models.Model):
full_address = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
有些full_address以"地区"结尾.例子:
我想从任何full_address以它结尾的字段中删除"Region" .
这是一个可能的解决方案,但它很慢,因为你需要Address逐个遍历:
for i in Address.objects.filter(full_address__endswith=' Region'):
i.full_address = i.full_address[:-7]
i.save()
Run Code Online (Sandbox Code Playgroud)
有没有办法实现上述功能Address.objects.update()?