小编dow*_*123的帖子

如何注册已在admin中注册的模型?

我正在尝试更改django包中的字段管理中的字段顺序(其余框架)

我定义了一个新的管理员,但得到了"已经注册的模型"错误.当然必须有办法做到这一点?

from rest_framework.authtoken.models import Token
class AuthTokenAdmin(admin.ModelAdmin):
    list_display = ('user', 'key',)


admin.site.register(Token, AuthTokenAdmin)
Run Code Online (Sandbox Code Playgroud)

django django-admin django-admin-tools

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

什么是celery.utils.log.ProcessAwareLoggerobject在logging.Logger.manager.loggerDict中做什么

我正在检查logging.Logger.manager.loggerDict:

import logging
logging.Logger.manager.loggerDict
Run Code Online (Sandbox Code Playgroud)

该词典如下:

{
  'nose.case': <celery.utils.log.ProcessAwareLoggerobjectat0x112c8dcd0>,
  'apps.friends': <logging.PlaceHolderobjectat0x1147720d0>,
  'oauthlib.oauth2.rfc6749.grant_types.client_credentials': <celery.utils.log.ProcessAwareLoggerobjectat0x115c48710>,
  'apps.adapter.views': <celery.utils.log.ProcessAwareLoggerobjectat0x116a847d0>,
  'apps.accounts.views': <celery.utils.log.ProcessAwareLoggerobjectat0x116976990>,

  }
  There are more but I truncated it
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 为什么芹菜参与各种其他非芹菜应用程序的记录?是因为日志记录以异步方式完成,并且某种程度上日志记录框架检测到芹菜的存在并使用它?
  2. 对于我自己使用的两个文件logger = logging.getLogger(__name__),我看到一个是PlaceHolderObject,另外两个是celery.utils.log.ProcessAwareLogger对象 - 尽管后两个在视图中调用而不是在芹菜进程中调用.那是怎么变成这种方式的呢

谢谢

python django logging celery

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

如何在python中模拟并仍然允许执行模拟函数的实际代码

我最近开始在 python 中使用模拟框架。似乎如果我修补一个函数,则不会调用实际代码-这意味着未实现此实际函数所做的数据库更改等。我一直试图通过事先调用函数并存储返回值并将其作为 arg 传递到 patch() 来绕过它,但是有没有更好的方法来做到这一点?理想情况下,我想要一个可以用作 a 的代码,silent observer我可以简单地询问它是否observed调用了某个函数,调用了多少次,以及使用了哪些参数

我当前的代码

return_val = funct()

# C: Now call me again and assert that these intensive computation functions are not called but taken from cache
with patch('funct', return_value=return_val) as mock_task:

    me_response = self.client.get(me_url, format='json')    #should fetch from cache
    assert not mock_task.called
Run Code Online (Sandbox Code Playgroud)

python django patch pytest python-mock

6
推荐指数
2
解决办法
2456
查看次数

Django服务器端应用程序(可能是一个微博客)和Android应用程序客户端 - 如何沟通

我正在尝试编写一个Django微博服务器,并拥有1)web界面和2)Android应用程序客户端

对于Android应用程序客户端,我如何与Django服务器通信?有没有办法从django驱动的服务器传递请求整个类数据(比如Class Microblog对象或类BlogUser对象),然后在android应用程序中打印/显示这些对象?

django android client-server

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

使用AWS S3 vs Cloudfront

由于heroku文件系统是临时的,因此我计划在heroku上的django项目中使用AWS作为静态资产

我看到两篇相互矛盾的文章,一篇关于使用AWS S3的建议。这个说用S3

https://devcenter.heroku.com/articles/s3

下面的另一句话说,S3有缺点,而改用Cloudfront CDN

https://devcenter.heroku.com/articles/using-amazon-cloudfront-cdn

许多开发人员利用Amazon的S3服务来提供手动或通过某种形式的构建过程上传的静态资产。尽管这可行,但不建议这样做,因为S3被设计为文件存储服务,而不是为了在负载下最佳地传递文件。因此,不建议从S3提供静态资产。

django heroku amazon-s3 amazon-web-services amazon-cloudfront

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

在哪里调用 gc.collect()

我应该在哪里调用垃圾收集器?调用函数后调用它会清除被调用函数的内存吗?

del另外,调用 gc.collect() 和专门对变量执行操作之间有什么区别

def a():
    b()
    # should I call gc.collect() here?
    # is there any other way to release memory allocated in the called function here?

def b():
    # big allocation like
    foo = ['abc' for x in range(10**7)]

    # should I call gc.collect() here?
    # should I do a foo = None and x = None here?
Run Code Online (Sandbox Code Playgroud)

python garbage-collection memory-leaks memory-management

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

ScheduledThreadPoolExecutor用于定期任务(使用翻新),仅触发一次,不再触发

我有以下代码用于每隔X秒从服务器轮询未读通知计数

我通过App.onCreate()中的ScheduledThreadPoolExecutor启动此过程,然后

Log.d("XXX", "Requesting Notification count from server ...");
Run Code Online (Sandbox Code Playgroud)

一次被调用(我在Logcat中可以看到),但是两个Retrofit回调函数都没有被调用(实际上没有Retrofit调试日志)。此外,永远不会再次打印“正在从服务器请求通知计数...。”(即,定期任务未运行)

我也将Retrofit用于其他Web服务调用(根据用户输入),并且它们工作正常(我可以在logcat中看到传入和传出的请求/响应)

public class App extends Application  {



    private ScheduledExecutorService scheduleTaskExecutor;
    ...


    @Override
    public void onCreate() {
        super.onCreate();

        //region Set up the periodic notification count listener task


        scheduleTaskExecutor= Executors.newScheduledThreadPool(2);
        scheduleTaskExecutor.scheduleAtFixedRate(new PeriodicNotifCountFetchTask(), 0, 5, TimeUnit.SECONDS);

        //endregion
    }


    class PeriodicNotifCountFetchTask implements Runnable {

        @Override
        public void run() {
            Log.d("XXX", "Requesting Notification count from server ...");
            EMRestClient.getmEMRestService().getNotificationCount(new Callback<NotificationCount>() {
                @Override
                public void success(NotificationCount response, Response unused) {

                    int unreadNotifCount = response.getCount();

                    Log.d("XXX", "Successfully fetched …
Run Code Online (Sandbox Code Playgroud)

multithreading android android-asynctask scheduledexecutorservice retrofit

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

Android 颜色资源 - 使一种颜色成为另一种颜色的别名

有没有办法做类似下面的事情?

<color name="gray1">#eeeeee</color>
<color name="separator_line_gray">@color/gray1</color>
Run Code Online (Sandbox Code Playgroud)

这样我就可以separator_line_gray在我的代码中使用并根据需要快速将其从gray1更改为gray2

xml android android-resources

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

HTTPS不通过翻新发送一些身份验证标头

我正在Android库上对Web请求使用Retrofit。奇怪的是,如果我使用someWeb请求的HTTPS 失败,并以403失败,并且失败消息是{“ detail”:“未提供身份验证凭据。”}好像我对某些Web请求执行HTTPS我的身份验证令牌未通过

05-09 13:47:10.110    6850-6890/com.gmspartnersltd.earthmiles.debug D/Retrofit? <--- HTTP 200 http://staging.earthmiles.co.uk/api/v1/accounts/profile/firstupdate/2419/ (1187ms)
05-09 13:47:10.513    6850-6890/com.gmspartnersltd.earthmiles.debug D/Retrofit? <--- HTTP 200 http://staging.earthmiles.co.uk/api/v1/globalprefs/connectedapps/ (213ms)
05-09 13:47:12.045    6850-6890/com.gmspartnersltd.earthmiles.debug D/Retrofit? <--- HTTP 200 http://staging.earthmiles.co.uk/api/v1/rewards/rewards?page=1 (408ms)
05-09 13:47:12.354    6850-6962/com.gmspartnersltd.earthmiles.debug D/Retrofit? <--- HTTP 200 http://staging.earthmiles.co.uk/api/v1/accounts/profile/me/ (686ms)
05-09 13:47:12.969    6850-6964/com.gmspartnersltd.earthmiles.debug D/Retrofit? <--- HTTP 200 http://staging.earthmiles.co.uk/api/v1/feeds/feeds?page=1&segment_type=content (1279ms)
05-09 13:47:13.079    6850-6965/com.gmspartnersltd.earthmiles.debug D/Retrofit? <--- HTTP 200 http://staging.earthmiles.co.uk/api/v1/feeds/feeds?page=1&segment_type=friends (1366ms)
05-09 13:47:13.405    6850-6890/com.gmspartnersltd.earthmiles.debug D/Retrofit? <--- HTTP 200 http://staging.earthmiles.co.uk/api/v1/rewards/rewards?page=2 (1155ms)
05-09 13:48:03.584    7053-7094/com.gmspartnersltd.earthmiles.debug D/Retrofit? <--- HTTP 200 https://staging.earthmiles.co.uk/api/v1/globalprefs/iosapppreferences/1/ (262ms)
05-09 13:48:10.731    7053-7094/com.gmspartnersltd.earthmiles.debug …
Run Code Online (Sandbox Code Playgroud)

android android-networking retrofit okhttp

5
推荐指数
0
解决办法
491
查看次数

带有Python 3的Librabbitmq 2.0.0出现TypeError:无法腌制memoryview对象

我正在使用git repo的最新主分支https://github.com/celery/librabbitmqlibrabbitmq==2.0.0按照自述文件中的说明安装Python 3.6

使用开发版本

您可以通过执行以下操作来克隆存储库:

$ git clone git://github.com/celery/librabbitmq.git
Run Code Online (Sandbox Code Playgroud)

然后通过执行以下操作安装它:

$ cd librabbitmq
$ make install        # or make develop
Run Code Online (Sandbox Code Playgroud)

正常运行(在操作系统中安装了某些二进制文件进行c编译之后),但是当我随后执行一个小的a+b添加任务并对其进行调用时,add.delay(2,2)失败并出现以下错误。我抬头看,发现Celery 4使用json作为序列化器,所以很明显这不是因为pickle序列化

  1. 从librabbitmq更改为pyamqp代理正常工作
  2. MacOS和Ubuntu 16中的情况完全相同

[2018-04-30 23:40:02,956:CRITICAL / MainProcess]不可恢复的错误:SystemError('返回了带有错误集的结果',)追溯(最近一次调用为最后):文件“ /Users/somghosh/.virtualenvs/ ctdb / lib / python3.6 / site-packages / kombu / messaging.py”第624行,在_receive_callback中,如果on_m则返回on_m(message),否则self.receive(已解码,消息)文件“ /Users/somghosh/.virtualenvs/ ctdb / lib / python3.6 / site-packages / celery / worker / consumer / consumer.py”,行570,在on_task_received回调中,文件“ /Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site- package / celery / worker / strategy.py”,第145行,位于task_message_handler句柄(要求)文件“ /Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/worker.py”中,第221行,在_process_task_sem中返回self._quick_acquire(self._process_task,req)在获取回调中的文件“ /Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/kombu/async/semaphore.py”,第62行(* partial_args,** partial_kwargs)文件“ /Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/worker.py”,第226行,位于_process_task req.execute_using_pool(自身。池)文件“ /Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/request.py”,行531,在execute_using_poolcorrelation_id …

amqp py-amqplib celery librabbitmq

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