所以我想使用我的新Nexus 5来调试我的应用程序.
我试图通过设备管理器安装Android USB驱动程序
但是我的nexus被列为便携式设备并使用默认的Windows驱动程序.
如何MTP-USB driver用android驱动程序替换windows ?
当我点击更新驱动程序软件和选择时"\sdk\extras\google\usb_driver",它告诉我驱动程序软件是最新的.
编辑:
USB调试已经激活
编辑2:
抱歉我的错,实际上我的设备管理器中有两个Nexus 5.另一个接受了android驱动程序.
我正在努力改造.当我在浏览器中发布请求时,我收到了这样的请求:
这就是我的期望.但是,当我尝试在我的应用程序中解析它时,我一直得到响应,就像在这个帖子中一样.我发现尝试实现这个解决方案,但我errorBody甚至不喜欢我的浏览器的答案:
我怎样才能获得这个JSON?
以防这是我的响应处理程序代码:
void handleResponse(Response response){
TextView textView = (TextView)findViewById(R.id.empty_list_tv);
if(response.isSuccessful())
textView.setText(response.toString());
else {
Gson gson = new Gson();
ErrorResponse errorResponse = gson.fromJson(
response.errorBody().toString(),
ErrorResponse.class);
textView.setText(response.errorBody().toString());
}
}
Run Code Online (Sandbox Code Playgroud)
我的ErrorResponse:
public class ErrorResponse {
@SerializedName("message")
private String message;
@SerializedName("error")
private Error error;
public String getMessage() {
return message;
}
public Error getError() {
return error;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试对我的模型进行分组,如下所示:
class Restaurant(models.Model):
pass
class Order(models.Model):
created = models.DateTimeField(auto_now_add=True)
restaurant = models.ForeignKey('Restaurant')
Run Code Online (Sandbox Code Playgroud)
现在我想知道每天创建了多少订单。这意味着我需要从 DateTime 字段获取日期,然后获取计数。
如果相关,我将以Order这种方式获取查询集:
restaurant = Restaurant.objects.get(id=request.data['restaurant_id'])
orders = restaurant.order_set.filter(created__lte=some_date)
Run Code Online (Sandbox Code Playgroud)
现在,我怎样才能得到我想要的东西呢orders?我尝试过类似的事情:
orders.values('created').annotate(Count('created'))
Run Code Online (Sandbox Code Playgroud)
使用TruncDate等等。
我正在使用 Python 2 和 Django 1.11。
编辑为了更好地表达我的意图。我想要用纯Python实现的东西,如下所示:
orders_by_date = {}
for order in orders:
if orders_by_date.get(datetime.date(orders[0].created.year, orders[0].created.month, orders[0].created.day):
orders_by_date[datetime.date(orders[0].created.year, orders[0].created.month, orders[0].created.day)] += 1
else:
orders_by_date[datetime.date(orders[0].created.year, orders[0].created.month, orders[0].created.day)] = 1
Run Code Online (Sandbox Code Playgroud)
EDIT2我能够成功显示单个日期的计数:
orders.filter(created__date=datetime.date(2018, 6, 8)).aggregate(Count('id'))
Run Code Online (Sandbox Code Playgroud)
给我{'id__count': 3}。现在,按所有日期(而不仅仅是单个日期)进行分组将是完美的。
我有一个测试,我创建了几个对象:
def test_get_courier_task_returns_couriers_tasks(self):
with patch('django.utils.timezone.now', return_value=make_aware(datetime(2018, 1, 24, 11, 57))):
task1 = TaskFactory()
response = json.loads(MyAPI.get_tasks_list(self.user.username))
print('[*] Response timestamp: {}'.format(response['content'][0]['timestamp']))
Run Code Online (Sandbox Code Playgroud)
设置为 True的Taskhascreated_timestamp字段auto_add_now和上面to_json()使用的方法get_tasks_list():
class Task(models.Model):
created_timestamp = models.DateTimeField(auto_now_add=True)
def to_json(self):
to_return = {
'timestamp': self.created_timestamp.strftime('%d-%m-%Y %H:%M')
}
return to_return
Run Code Online (Sandbox Code Playgroud)
不幸的是,测试给出了这个输出:
[*] 响应时间戳:24-01-2018 10:57
我已经检查过这是时区感知,但不是给我 UTC+1,而是在保存时给我 UTC+0。我需要做什么?我USE_TZ = True在我的设置中已经应用了迁移。这个问题对我的问题没有帮助。
当尝试创建两个单独的专用工作人员时,我无法将任务发送到芹菜。我已经阅读了文档和这个问题,但它并没有改善我的情况。
我的配置如下:
CELERY_RESULT_BACKEND = 'django-db'
CELERY_BROKER_URL = f'redis://{env("REDIS_HOST")}:{env("REDIS_PORT")}/{env("REDIS_CELERY_DB")}'
CELERY_DEFAULT_QUEUE = 'default'
CELERY_DEFAULT_EXCHANGE_TYPE = 'topic'
CELERY_DEFAULT_ROUTING_KEY = 'default'
CELERY_QUEUES = (
Queue('default', Exchange('default'), routing_key='default'),
Queue('media', Exchange('media'), routing_key='media'),
)
CELERY_ROUTES = {
'books.tasks.resize_book_photo': {
'queue': 'media',
'routing_key': 'media',
},
}
Run Code Online (Sandbox Code Playgroud)
任务在文件中按以下方式定义tasks.py:
import logging
import time
from celery import shared_task
from books.models import Author, Book
from books.commands import resize_book_photo as resize_book_photo_command
logger = logging.getLogger(__name__)
@shared_task
def list_test_books_per_author():
time.sleep(5)
queryset = Author.objects.all()
for author in queryset:
for book in author.testing_books: …Run Code Online (Sandbox Code Playgroud)