我有以下序列化程序类.
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ('id', 'name', 'active', 'type', 'user')
Run Code Online (Sandbox Code Playgroud)
列出所有配置文件时,用户字段显示用户ID.如何更改此项以显示user.username?我知道我的模型我只是将它添加到我的元类中,但是没有创建用户模型(它是Django的一部分).在调用用户显示用户名而不是id时,如何告诉Django?
非常感谢.
我有一个芹菜任务,将消息添加到数据库,如下所示:
class ProcessRequests(Task):
def run(self, batch):
for e in q:
msg = Message.objects.create(
recipient_number=e.mobile,
content=batch.content,
sender=e.contact_owner,
billee=batch.user,
sender_name=batch.sender_name
)
gateway = Gateway.objects.get(pk=2)
msg.send(gateway)
Run Code Online (Sandbox Code Playgroud)
然后在 msg.send(网关)模型中有另一个任务实际发送消息并运行它:
class SendMessage(Task):
name = "Sending SMS"
max_retries = 10
default_retry_delay = 3
def run(self, message_id, gateway_id=None, **kwargs):
logging.debug("About to send a message.")
so some stuff here
logging.debug("Done sending message.")
Run Code Online (Sandbox Code Playgroud)
这一切都很好(测试了超过1000条消息),但我在某处读到你不应该将任务链接在一起,但这不是链接,对吧?我不等待一个人完成另一个可以运行.
这个例子在性能等方面是否可以?
发送是这样的:
def send(self, message):
"""
Use this gateway to send a message.
If ``djcelery`` is installed, then we assume …Run Code Online (Sandbox Code Playgroud) 当我想在第一次启动控制器时初始化变量时,我在我的视图中执行此操作
<div ng-controller="testCtrl" ng-init="<%some var from server %>"> <div>
Run Code Online (Sandbox Code Playgroud)
但是,我现在正在使用这样的ui-router:
.state('index', {
url: "/",
templateUrl: "/register-form.html",
controller: "testCtrl"
})
Run Code Online (Sandbox Code Playgroud)
因为我不再呈现等待<div ng-controller=我如何仍然初始化并<%some var from server %>从模板中传递我?register-form.html不再具有控制器标签,因为ui-router负责处理它.
我有一个收件人查询包含两个ID为1和2的收件人:我遍历每个收件人以构建json输出:
data = []
this_tem = {}
for item in recipients:
this_tem['recipient_id'] = item.pk
data.append(this_tem)
return HttpResponse(json.dumps(data), mimetype='application/json')
Run Code Online (Sandbox Code Playgroud)
这给了我:
[
{
"recipient_id": 2,
},
{
"recipient_id": 2,
}
]
Run Code Online (Sandbox Code Playgroud)
你可以看到它应该是recipient_id 1,recipient_id 2然而,我的循环覆盖了值,为什么?
我有一个模型叫做Logs:
class Logs(models.Model):
entry = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
一些用户可以管理日志,其他用户可以编辑,其余用户只能查看。您将如何在Django中处理此类权限?
我当时想添加一个新many-to-many字段,一个用于管理员,另一个用于编辑,然后在保存功能中检查哪个用户属于哪个组。
但是,这似乎是静态且不好的,我可以以某种方式使用Django的内置权限吗?还有哪些其他解决方案,软件包,解决此问题的最佳方法是什么?
我已经看到您可以在Django中创建自定义权限,即
permission = Permission.objects.create(codename='can_publish',
name='Can Publish Logs',
content_type=content_type)
Run Code Online (Sandbox Code Playgroud)
但是Logs我将如何检查权限,这将在Save()方法中完成。
我的大多数Django模型使用相同的User Mixin,因此我想动态创建related_name该字段.
我希望它是类名,在主模型的元类中TestModel成为test_models甚至可能是一个集合名称.
我看过了,self__class__.__name__但这给了我User类的名字.
是否有可能做下面的事情,如果是这样的话......
class User(models.Model):
user = models.ForeignKey(USER, related_name=META.related_name)
class Meta:
abstract = True
class TestModel(User):
title = models.CharField(max_length=80)
class Meta:
related_name = "test_model"
Run Code Online (Sandbox Code Playgroud) 我想img在我的私有桶public中创建一个已经存在的文件夹.我正在使用Boto3.我只想公开这个文件夹,而不是使用脚本.
这就是我目前正在连接到水桶以及我有多远......
ACCESS_KEY_ID = 'xxxxx'
ACCESS_KEY_SECRET = 'xxxx'
bucket_name = 'mybucket'
sourceDir = "../../docs/buildHTML/html/"
destDir = ''
r = boto3.setup_default_session(region_name='eu-west-1')
s3 = boto3.resource('s3', aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET)
bucket = s3.Bucket(bucket_name)
Run Code Online (Sandbox Code Playgroud)
所以我有水桶,这是有效的.我现在如何使img已存在的文件夹公开?
在Mac上,如何找到旧版本的Redis并将其完全卸载?
我正在使用OSX并使用以下命令安装Redis brew install redis.brew州安装的版本redis-3.0.7.
但是,当我运行命令时:redis-server输出表明它正在运行Redis 2.6.9 (00000000/0) 64 bit.我不知道这个版本的安装位置.
我试图直接下载redis并使用sudo make uninstall但得到了这个错误:
cd src && /Applications/Xcode.app/Contents/Developer/usr/bin/make uninstall
make[1]: *** No rule to make target `uninstall'. Stop.
make: *** [uninstall] Error 2
Run Code Online (Sandbox Code Playgroud) 就拿kwargs即:send_members,send_companies,send_reviewers,每个包含字符串'true'或'false'.
如果每个中的所有值kwargs都是'false',我想显示错误消息,例如:
if (kwargs['send_members'] == 'false' and kwargs['send_companies'] == 'false' and
kwargs['send_reviewers'] == 'false'):
raise SomeError('at least one keyword needs to be true')
Run Code Online (Sandbox Code Playgroud)
是否有Pythonic方法检查所有值kwargs是否相同,'false'?虽然上面的例子有效但是当我有10个时它会变得非常混乱kwargs.
我已经有一个预先存在的数据库但现在想要使用Django.有没有办法从我的数据库中自动生成Django需要的模型?例如,如果我已经有一个包含从另一个应用程序定义的表的数据库.
django ×6
python ×6
angularjs ×1
boto ×1
boto3 ×1
celery ×1
homebrew ×1
javascript ×1
macos ×1
python-2.7 ×1
python-3.4 ×1
python-3.x ×1
redis ×1