我的应用程序与直通模型有几个多对多关系,如下所示:
class Person(models.Model):
name = models.CharField()
class Group(models.Model):
name = models.CharField()
members = models.ManyToManyField(Person, through='Membership')
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField() # Extra info on the relationship
Run Code Online (Sandbox Code Playgroud)
在 graphql 中表示这些数据而没有成员资格的中间类型(选项 A)似乎很直观:
{
"data": {
"persons": [
{
"id": "1",
"name": "Jack",
"groups": [
{
"id": 3, # From Group-model
"name": "Students", # From Group-model
"date_joined": "2019-01-01" # From Membership-model
},
...
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
对比选项 B:
{
"data": { …Run Code Online (Sandbox Code Playgroud) 我目前正在本地化我的Django应用程序.所有其他翻译工作正常,除了blocktrans标签内的百分号.
在我的模板中,我有{% blocktrans %}Original % blocktrans{endblocktrans %}.
django-admin makemessages 在django.po中生成这个:
#: templates/index.html:78
#, python-format
msgid "Original %% blocktrans"
msgstr ""
Run Code Online (Sandbox Code Playgroud)
我更新msgstr "Translated %% blocktrans",运行django-admin compilemessages,重新启动开发服务器并刷新页面,但我仍然Original % blocktrans在输出中看到.其他翻译正确显示.
作为参考,{% trans "Original % trans" %}也可以.在makemessages和翻译之后,我有:
#: templates/index.html:72
msgid "Original % trans"
msgstr "Translated % trans"
Run Code Online (Sandbox Code Playgroud)
这按预期工作 - 显示翻译版本.
我必须使用blocktrans,因为我还需要将变量嵌入到字符串中.我正在使用Django 1.2.5.
如何使用百分号使块运行工作?
如何使用自定义保存/恢复逻辑创建 Django Rest 框架读写字段?我正在使用 DRF 3.5.4 和 Django 1.8。
像这样的东西:
class UserSerializer(serializer.Serializer):
# username is a field in the backing model, no problemo
username = serializers.CharField()
# type is not an actual model field, but reflects whether the user has
# Django permission "foo" set. I.e. "normal" = no permission, "silly" =
# permission is set.
type = serializers.ChoiceField(["normal", "silly"])
Run Code Online (Sandbox Code Playgroud)
换句话说:创建用户时,如果type == "silly",则为他设置权限“foo”,如果类型为“正常”则不设置。并且在检索用户时,type == "silly"如果用户设置了权限“foo”,如果没有则设置“正常”。
不允许/不需要用户更新,但我也有兴趣知道如何将其应用于更新。
我们在Windows 7主机中的虚拟机Ubuntu LTS 12.04 guest中运行我们的开发环境.我们在开发期间使用./manage.py runserver.
最近我们将Django版本升级到最新版本(1.4.19)但注意到一个非常奇怪的行为:来自主机的请求从5到30秒服务,而来自VM内部的请求在不到一秒的时间内提供,因为它们应该是.这个问题已经在Django 1.4.18(https://docs.djangoproject.com/fr/1.7/releases/1.4.18/)中引入,所有旧版本都可以快速运行.
在来宾或主机中使用不同的浏览器没有任何区别.请求的资源是动态的还是静态的(我们使用静态应用程序在开发期间提供静态内容)也没有任何区别.
什么可能导致这种行为?从发行说明来看,我们并不是很清楚.