小编fan*_*err的帖子

Django Test Client尝试嵌套JSON

我遇到的问题非常类似于Django的Querydict奇怪的行为:将POST字典串入单个键单元测试Django JSON View.但是,这些线程中的问题/响应都没有真正指出我遇到的指定问题.我正在尝试使用Django的测试客户端发送带有嵌套JSON对象的请求(我对具有非JSON值的JSON对象有效).

尝试#1:这是我的初始代码:

    response = c.post('/verifyNewMobileUser/', 
        {'phoneNumber': user.get_profile().phone_number,
         'pinNumber': user.get_profile().pin,
         'deviceInfo': {'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067', 'deviceType': 'I'}})
Run Code Online (Sandbox Code Playgroud)

如您所见,我的请求数据中有一个嵌套的JSON对象.但是,这就是request.POST的样子:

<QueryDict: {u'phoneNumber': [u'+15551234567'], u'pinNumber': [u'4171'], u'deviceInfo': [u'deviceType', u'deviceID']}>
Run Code Online (Sandbox Code Playgroud)

尝试#2:然后我尝试了,添加了content-type参数,如下所示:

response = c.post('/verifyNewMobileUser/', 
    {'phoneNumber': user.get_profile().phone_number,
     'pinNumber': user.get_profile().pin,
     'deviceInfo': {'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067', 'deviceType': 'I'}},
    'application/json')
Run Code Online (Sandbox Code Playgroud)

我现在要求的是什么.POST是

<QueryDict: {u"{'deviceInfo': {'deviceType': 'I', 'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067'}, 'pinNumber': 5541, 'phoneNumber': u' 15551234567'}": [u'']}>
Run Code Online (Sandbox Code Playgroud)

我想要做的就是为我的请求数据指定一个嵌套的dict.是否有捷径可寻?

django django-testing

7
推荐指数
2
解决办法
2545
查看次数

AttributeError:'property'对象没有属性'admin_order_field'

我希望能够在模型中定义一个属性,该属性也可以使用"list_display"Admin属性中的admin_order_field显示和排序.下面是我想要定义的属性的代码(并且可以在django管理界面中进行排序)

  @property
  def restaurant_name(self):
    return str(self.restaurant)
  restaurant_name.admin_order_field = 'restaurant__name'
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误消息:

AttributeError: 'property' object has no attribute 'admin_order_field'
Run Code Online (Sandbox Code Playgroud)

当我摆脱@property装饰器时,它工作正常,但是我必须在模型实例上调用restaurant_name()而不是restaurant_name,它在如何访问模型的不同属性(实际定义为Python属性).如何在管理员中将Python属性指定为可排序?

django django-admin

7
推荐指数
1
解决办法
4859
查看次数

Heroku推送:命令错误'egg_info'无效

每次我尝试部署到Heroku时,我都会收到一个类似于这个问题的错误(Python pip安装失败:无效命令egg_info)如何解决此问题?它刚刚开始是一个恼人的事情,它会在第二次推动时消失,但现在我根本无法推动.

我的requirements.txt文件.注意:我已经尝试过尝试放入'setuptools'并将其删除,但它没有改变任何东西.

Django==1.5.5
dj-database-url==0.2.1
psycopg2==2.4.6
wsgiref==0.1.2
South==0.8.1
pytz==2013b
gunicorn==0.17.4
django-storages==1.1.6
django-extensions==1.1.1
boto==2.9.9
xhtml2pdf==0.0.5
django-debug-toolbar==0.10.2
numpy==1.6.2
pandas==0.11.0
django-model-utils==1.4.0
django-mailchimp-v1.3==1.3
requests==2.0.0
stripe==1.9.1
django-appconf==0.6
newrelic
redis==2.7.6
django-redis==3.3
rq==0.3.8
django-rq==0.5.1
django-loginas==0.1.3
djangorestframework==2.3.8
pusher==0.8
django-json-field==0.5.5
ZSI==2.0-rc3
APScheduler==2.1.0
django-twilio==0.4
rq-scheduler==0.3.6
django-ios-notifications==0.1.5
mixpanel-py==3.0.0
Run Code Online (Sandbox Code Playgroud)

python heroku

7
推荐指数
1
解决办法
991
查看次数

如何使用UserProfile模型修复IntegrityError(当用户从​​管理界面创建时)?

编辑1:我尝试使用sqlflush重置所有内容,但这没有用.

EDIT2:我能够创建一个用户并将OtherModel指定为NULL,然后稍后编辑该用户以使othermodel成为实际引用.在用户创建期间指定引用时会发生此问题.

因此,在我的应用程序中,它与postgres连接,我正在尝试扩展django提供的用户模型以及名为UserProfile的新模型.我希望每个用户都与我创建的另一个模型相关联.所以这是我的代码:

models.py

.
.
.

class OtherModel(models.Model):
    # model info

class UserProfile(models.Model):
    user = models.OneToOneField(User)    
    othermodel = models.OneToOneField(OtherModel, null=True)

def create_user_profile(sender, instance, created, **kwargs):
    if created:
        profile, created = UserProfile.objects.get_or_create(user=instance)

post_save.connect(create_user_profile, sender=User)
Run Code Online (Sandbox Code Playgroud)

当我从django管理界面创建用户时,我收到以下错误:

IntegrityError at /admin/auth/user/add/
duplicate key value violates unique constraint "planamocal_userprofile_user_id_key"
DETAIL:  Key (user_id)=(23) already exists.
Run Code Online (Sandbox Code Playgroud)

每次我尝试创建一个新用户时,user_id计数都会递增,这很奇怪,因为我的实际用户数保持不变.

这是回溯:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/admin/auth/user/add/

Django Version: 1.3.1
Python Version: 2.7.1
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'planamocal',
 'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware', …
Run Code Online (Sandbox Code Playgroud)

django

6
推荐指数
1
解决办法
2312
查看次数

无法在Dropbox文件夹中执行heroku的Python教程

编辑2:好的,这很奇怪.(我无法回答我自己的问题,所以我只是把它作为问题的另一个编辑.我认为这与我尝试在Dropbox-synced目录中进行此安装的事实有关.我得到了这个在我的桌面上工作.任何人都可以解释为什么会这样吗?

原始问题:

我正在尝试在我的Mac OS X(Lion)上进行Heroku的Python安装教程(http://devcenter.heroku.com/articles/python),但我会想到创建virtualenv的步骤.

所以我在命令行中做了这个(不使用sudo导致的权限错误):

sudo pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

但是,当我做"virtualenv venv --distribute"(我也尝试过sudo)时,我收到以下错误:

New python executable in venv/bin/python
Installing distribute..............................................................................................................................................................................................................................................................................................done.
Installing pip...
  Error [Errno 2] No such file or directory while executing command /Users/AndyFang/Drop...env/bin/easy_install /Library/Python/2.7/...pport/pip-1.1.tar.gz
...Installing pip...done.
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 8, in <module>
    load_entry_point('virtualenv==1.7.1.2', 'console_scripts', 'virtualenv')()
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 928, in main
    never_download=options.never_download)
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 1042, in create_environment
    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 640, in install_pip
    filter_stdout=_filter_setup)
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 966, in call_subprocess …
Run Code Online (Sandbox Code Playgroud)

python heroku virtualenv dropbox easy-install

5
推荐指数
1
解决办法
1486
查看次数

Django 1.7:绕过未保存的实例会抛出"不可用"异常

我目前正在迁移到Django 1.7.我有一些信号传递未保存的模型实例,现在抛出TypeError: Model instances without primary key value are unhashable.

我想知道Django pre_save信号如何在实例周围传递?我正在查看文档,甚至找到了在1.7(https://github.com/django/django/commit/6af05e7a0f0e4604d6a67899acaa99d73ec0dfaa)中实现此功能的提交,我只是不知道它是如何工作的.

有人可以向我解释pre_save是如何解决这个问题或者我如何绕过这个限制的吗?谢谢.

示例代码如下:

from django.dispatch import Signal

send_text = Signal()
unsaved_model = SomeModel()  # note that neither `create` or `.save()` are being called
send_text.send(sender=unsaved_model)  # error gets thrown when this gets called
Run Code Online (Sandbox Code Playgroud)

追溯:

  File "/home/ubuntu/fangsterr-app/notifications/models.py", line 43, in send
    send_text.send(sender=self)
  File "/home/ubuntu/virtualenvs/venv-2.7.5/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 194, in send
    if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS:
  File "/home/ubuntu/virtualenvs/venv-2.7.5/lib/python2.7/site-packages/django/db/models/base.py", line 484, in __hash__
    raise TypeError("Model instances without primary …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-1.7

4
推荐指数
1
解决办法
2006
查看次数

如何在Heroku中为Django应用程序删除单个表

我看到如何在Django中删除整个数据库(在Heroku上销毁Postgres数据库).但是,我想删除几个表(基本上在'python manage.py sqlclear appname'中执行sql命令).我该怎么做呢?

django heroku

2
推荐指数
1
解决办法
1939
查看次数

部署时使用Django Heroku Clear Cache

我正在使用Redis缓存(django-redis)为我在Heroku上托管的Django应用程序.更具体一点(虽然我认为它与可能的解决方案无关),但我正在使用Redis Cloud插件.

如何在部署时清除缓存?我正在寻找类似于Heroku Deploy上的Clear Memcached的答案,除了Django,而不是Rails.

django heroku redis

2
推荐指数
1
解决办法
1264
查看次数

Django 1.7 Admin - 如何隐藏时区警告?

我最近升级到Django 1.7,当我在管理界面中查看时,当我的本地时区与服务器时区不同时,我开始在DateTime/Time字段上看到这些时区警告.我当然明白为什么他们添加了这个,并且它消除了很多歧义,特别是使用DateTime,但我有一个TimeField实际上存储了与登录用户的时区相关的时间(保存在他们的用户配置文件中),所以警告消息在这种情况下实际上是误导.我也看到Django 1.7确实增加了这个功能(参见https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts. js#L63https://docs.djangoproject.com/en/dev/releases/1.7/#admin-shortcuts-support-time-zones).

我的问题是如何关闭这些消息?如果是这样,有没有办法可以指定如何在每个字段的基础上隐藏警告?

django django-admin django-1.7

2
推荐指数
1
解决办法
552
查看次数

如何在我的Django应用程序中包含'pytz'包以进行Heroku部署?

我正在尝试将(http://pytz.sourceforge.net/)中的pytz timezone包包含到我的Django应用程序(版本1.3)中,因此我可以改进时区功能.我很担心这个python包不会部署到Heroku中的应用程序上.我如何确保在Heroku上部署此包?

或者,如果有人能告诉我指出如何处理Django 1.3中的TZ问题,我会非常感激.

django heroku pytz

1
推荐指数
1
解决办法
1164
查看次数