我有一个关于处理m2m /通过模型及其在django rest框架中的表示的问题.我们来看一个经典的例子:
models.py:
from django.db import models
class Member(models.Model):
name = models.CharField(max_length = 20)
groups = models.ManyToManyField('Group', through = 'Membership')
class Group(models.Model):
name = models.CharField(max_length = 20)
class Membership(models.Model):
member = models.ForeignKey('Member')
group = models.ForeignKey('Group')
join_date = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
serializers.py:
imports...
class MemberSerializer(ModelSerializer):
class Meta:
model = Member
class GroupSerializer(ModelSerializer):
class Meta:
model = Group
Run Code Online (Sandbox Code Playgroud)
views.py:
imports...
class MemberViewSet(ModelViewSet):
queryset = Member.objects.all()
serializer_class = MemberSerializer
class GroupViewSet(ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
Run Code Online (Sandbox Code Playgroud)
在获取成员实例时,我成功接收了所有成员的字段及其组 - 但是我只获得了组的详细信息,而没有来自成员模型的额外详细信息.
换句话说,我希望收到:
{ …Run Code Online (Sandbox Code Playgroud) 我希望存储用户的活动,但我不知道在哪里存储它.我不认为数据库是一个选项,因为它将是非常大的.我想知道像facebook,dropbox这样的网站是如何记住特定用户的所有活动的.并且它不能存储在会话中,因为这不是特定于会话的,而是特定于用户的.
请帮我解决你的建议.
我已经定义了一些自定义属性,并通过Opencart管理面板将它们分配给产品.我正在尝试在结账时检索这些属性以调整一些运费.
我目前正在catalog/model/shipping/ups.php使用该getQuote函数中的文件.我正在接近这个:
print_r($this->cart->getProducts());
Run Code Online (Sandbox Code Playgroud)
这给了我以下产品数据:
Array
(
[59] => Array
(
[key] => 59
[product_id] => 59
[name] => My Product Name
[model] => ABC
[shipping] => 1
[image] => data/myproduct.jpg
[option] => Array
(
)
[download] => Array
(
)
[quantity] => 1
[minimum] => 1
[subtract] => 1
[stock] => 1
[price] => 29.99
[total] => 29.99
[reward] => 0
[points] => 0
[tax_class_id] => 0
[weight] => 3.75
[weight_class_id] => 5
[length] …Run Code Online (Sandbox Code Playgroud) 我试图用正则表达式抓住括号外的任何文本.
示例字符串
Josie Smith [3996 COLLEGE AVENUE,SOMETOWN,MD 21003] Mugsy Dog Smith [2560 OAK ST,GLENMEADE,WI 14098]
我能够成功地获得方括号内的文本:
addrs = re.findall(r"\[(.*?)\]", example_str)
print addrs
[u'3996 COLLEGE AVENUE, SOMETOWN, MD 21003',u'2560 OAK ST, GLENMEADE, WI 14098']
Run Code Online (Sandbox Code Playgroud)
但我在方括号之外得到任何东西都遇到了麻烦.我尝试过以下内容:
names = re.findall(r"(.*?)\[.*\]+", example_str)
Run Code Online (Sandbox Code Playgroud)
但是只找到第一个名字:
print names
[u'Josie Smith ']
Run Code Online (Sandbox Code Playgroud)
到目前为止,我只看到一个包含一到两个name [address]组合的字符串,但我假设字符串中可以有任意数量的字符串.
我正在使用scapy来嗅探镜像端口并生成前10个"谈话者"的列表,即使用我网络上最大带宽的主机列表.我知道已有的工具,如iftop和ntop,但我需要更多控制输出.
以下脚本对流量进行30秒的采样,然后以"源主机 - >目标主机:字节"格式打印前10个谈话者的列表.这很好,但我怎样才能计算每秒的平均字节数?
我意识到将sample_interval更改为1秒不允许对流量进行良好的采样,因此我似乎需要将其平均化.所以我在脚本的最后尝试了这个:
每秒字节数=(total bytes/sample_interval)
但最终的Bytes/s似乎要低得多.例如,我以1.5 MB/s的节流速率在两台主机之间生成了一个rsync,但是使用上面的平均计算,我的脚本一直计算这些主机之间的速率大约为200 KB/s ...远低于1.5 MB/s正如我所料.我可以用iftop确认1.5 MB/s实际上是这两个主机之间的速率.
我用scapy错误地总计数据包长度(请参阅traffic_monitor_callbak函数)?或者这完全是一个糟糕的解决方案:)?
from scapy.all import *
from collections import defaultdict
import socket
from pprint import pprint
from operator import itemgetter
sample_interval = 30 # how long to capture traffic, in seconds
# initialize traffic dict
traffic = defaultdict(list)
# return human readable units given bytes
def human(num):
for x in ['bytes','KB','MB','GB','TB']:
if num < 1024.0:
return "%3.1f %s" % (num, …Run Code Online (Sandbox Code Playgroud) 我在R中创建了一个情节,需要在某些轴标签上添加一个短划线,而不是你的日常连字符.
axis(1, at=c(0:2), labels=c("0-10","11-30","31-70"))
Run Code Online (Sandbox Code Playgroud)
我在Linux上运行R版本2.8.1.
我试图了解Postgres 9.1 rpms是如何在CentOS/RHEL 6上构建的,所以我要看一下源rpms中的spec文件.
以下语法是什么意思?具体来说,问号和感叹号?
%{!?test:%define test 1}
%{!?plpython:%define plpython 1}
%{!?pltcl:%define pltcl 1}
%{!?plperl:%define plperl 1}
%{!?ssl:%define ssl 1}
%{!?intdatetimes:%define intdatetimes 1}
%{!?kerberos:%define kerberos 1}
%{!?nls:%define nls 1}
%{!?xml:%define xml 1}
%{!?pam:%define pam 1}
%{!?disablepgfts:%define disablepgfts 0}
%{!?runselftest:%define runselftest 0}
%{!?uuid:%define uuid 1}
%{!?ldap:%define ldap 1
Run Code Online (Sandbox Code Playgroud)
我知道你可以定义一个宏变量%define <name>[(opts)] <value>,我相信感叹号是一个逻辑否定运算符.我找不到关于问号或上述例子的任何信息.在定义宏变量之前,似乎是某种测试.
这是spec文件的粘贴.
我有一堆变量需要可供所有模板的视图使用.似乎最好的选择是上下文处理器.
文件说:
上下文处理器有一个非常简单的接口:它只是一个Python函数,它接受一个参数,一个HttpRequest对象,并返回一个被添加到模板上下文的字典.每个上下文处理器必须返回一个字典
如果我需要进行更高级的查找,我可以定义其他功能吗?这些功能需要在课堂上吗?我正在考虑创建一个context_processors.py在我的app文件夹中命名的文件.
我是git的新手,所以请原谅我这是一个愚蠢的问题.
我在SLES Linux上从源代码安装了git 1.7.7.4,看起来都不错.我在$ MANPATH中添加了以下内容:
/usr/local/git-1.7.7.4/share/man
Run Code Online (Sandbox Code Playgroud)
当我这样做的时候man git,我会被提出来
Git(3) User Contributed Perl Documentation Git(3)
NAME
Git - Perl interface to the Git version control system
SYNOPSIS
...
Run Code Online (Sandbox Code Playgroud)
这看起来不像我在命令行中使用的git命令的手册页.或者是吗?听起来像perl的东西,显然.这是我看到的完整手册页的在线版本.
如果这不是正确的手册页,我在哪里可以找到它们?如果需要,我可以给我的git安装目录列表.谢谢.
我正在从一个Web服务器读取一个plist,用一些php生成.当我在我的iphone应用程序中将其读入NSArray,然后使用NSLog将NSArray吐出来检查它时,我看到浮点值被视为字符串.我希望将"距离"值视为数字而不是字符串.这个plist显示在一个表视图中,它可以按距离排序,但问题是距离被排序为一个字符串,所以我得到了一些有趣的排序结果.
我可以将距离值从NSArray中的字符串转换为float吗?或者也许是一个更简单的解决方案,比如调整plist定义,或者NSMutableURLRequest代码中的某些东西?
我的plist看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>name</key>
<string>Pizza Joint</string>
<key>distance</key>
<string>2.1</string>
</dict>
<dict>
<key>name</key>
<string>Burger Kang</string>
<key>distance</key>
<string>5</string>
</dict>
</array>
</plist>
Run Code Online (Sandbox Code Playgroud)
在将其读入NSArray之后,它看起来像每个NSLog:
result: (
{
distance = "2.1";
name = "Pizza Joint";
},
{
distance = 5;
name = "Burger Kang";
}
)
Run Code Online (Sandbox Code Playgroud)
以下是检索plist的Objective-C代码:
// Set up url request
// postData and postLength are left out, but I can post in this question if needed.
NSMutableURLRequest *request = [[[NSMutableURLRequest …Run Code Online (Sandbox Code Playgroud)