我在模型中使用mpt来管理标记系统(每个标记都有一个可选的TreeForeignKey到'父'标记)
每当我需要保存标签模型时,以下查询运行异常缓慢(超过45秒)
UPDATE "taxonomy_taxonomy" SET "tree_id" = ("taxonomy_taxonomy"."tree_id" + %s) WHERE "taxonomy_taxonomy"."tree_id" > %s
Run Code Online (Sandbox Code Playgroud)
我通过自动标记系统发送文章内容,该系统可以生成超过20个标签.显然,那不会飞:)
我添加了db_index = False希望改变写入时间(读取似乎不是问题),但问题仍然存在.
这是有问题的模型:
class Taxonomy(MPTTModel):
parent = TreeForeignKey('self',blank=True,null=True,related_name='children',verbose_name='Parent', db_index=False)
parent_name = models.CharField(max_length=64, blank=True, null=True, editable=False)
name = models.CharField(verbose_name='Title', max_length=100, db_index=True)
slug = models.SlugField(verbose_name='Slug', blank=True)
primary = models.BooleanField(
verbose_name='Is Primary',
default=False,
db_index=True,
)
type = models.CharField(max_length=30, db_index=True)
created_date = models.DateTimeField(auto_now_add=True, null=True)
updated_date = models.DateTimeField(auto_now=True, null=True)
publication_date = models.DateTimeField(null=True, blank=True)
scheduled_date = models.DateTimeField(null=True, blank=True)
workflowstate = models.CharField(max_length=30, default='draft')
created_by = models.ForeignKey(User, null=True)
paid_content = models.BooleanField(verbose_name='Is Behind …Run Code Online (Sandbox Code Playgroud) 我正在使用 PyJWT==1.4.2 来生成我打算用于 Firebase 身份验证的令牌。
不幸的是,我无法使用任何第三方 Python Firebase 库,即使可以,在尝试使用 FirebaseTokenGenerator 时也遇到了同样的困难。
在我的 API 内部,我有一个为用户名生成令牌的函数。
118 def generate_token(self, username):
119 payload = {
120 'something': 'Here',
121 }
122 secret = "TESTSECRET"
123 token = jwt.encode(
124 payload,
125 secret,
126 algorithm='HS256')
127 return token
Run Code Online (Sandbox Code Playgroud)
我从这个函数得到的令牌的一个例子是:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21ldGhpbmciOiJIZXJlIn0.fpIMSRJ3AAL30LIDwHJM9ZOumdRzS7yooiiUgMPms2Y
不幸的是,这不是一个有效的令牌。https://jwt.io/等在线资源告诉我签名部分无效。
不确定这是否是进一步有用的信息,但是当我尝试解码令牌时,我得到以下信息:
b'{"alg":"HS256","typ":"JWT"}{"something"[83 chars]\x88'
Run Code Online (Sandbox Code Playgroud)
关于我可能做错了什么的任何想法?
我正在尝试将关联域添加到我的 Expo(非弹出)react-native 项目中。
我的应用程序构建良好并通过 XCode 应用程序加载器正常提交。
但是,如果我将associatedDomains数组添加到我的数组中,则app.json在尝试提交应用程序时会出现错误:
ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. The bundle contains a key that is not included in the provisioning profile: 'com.apple.developer.associated-domains' in 'Payload/ExpoKitApp.app/ExpoKitApp'."
我根本没有在 XCode 中开发这个。我一直在自己的环境中构建应用程序,运行expo build:ios,下载.ipa文件,在 Mac 上打开 XCode,然后运行 将Xcode > Open Developer Tools > Application Loader其提交给 testflight。该过程一直运行良好,但我不确定我需要在 XCode 或我的 Apple 开发人员帐户中的哪个位置启用该权利,如果需要更新一些配置文件,如果需要,我将其放在何处。
世博会文档提到(https://docs.expo.io/versions/latest/workflow/linking/#universal-links-on-ios …
试图将项目从Django 1.7迁移到1.8.在与代码错误搏斗后,我能够运行迁移.但是,当我尝试迁移时,我收到错误"'NoneType'对象没有属性'_meta'"
在我的任何应用程序的追溯中都没有参考,所以我不确定在哪里寻找错误(以及包含在这里的代码,以便我对那些试图帮助我的人更有帮助)
这是追溯的全文
(venv)rtownley@ubuntu:~/Projects/sparrow1/NJ$ ./manage.py makemigrations
No changes detected
(venv)rtownley@ubuntu:~/Projects/sparrow1/NJ$ ./manage.py migrate
Operations to perform:
Synchronize unmigrated apps: staticfiles, editor, djcelery, messages, getty, kombu_transport_django, debug_toolbar, utils, locking, petro, tokenapi, grappelli, django_extensions, selectable
Apply all migrations: adops, taxonomy, issues, editorial, contenttypes, authors, auth, comms, membership, sessions, bento, urlalias, accounts, breaking_news, easy_thumbnails, images, admin, pages, documents, events
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
Rendering model states...Traceback (most recent call last):
File "./manage.py", line …Run Code Online (Sandbox Code Playgroud) 我一直在浏览https://docs.docker.com/v17.12/get-started/part3/#take-down-the-app-and-the-swarm 上的 docker 教程,并且我已经完成了部分我们在哪里设置我们的初始 docker swarm。
起初我有这个工作,但后来不得不调和我的系统上asnap install docker和之间的差异apt install docker。在此之后,当我尝试运行时,docker swarm init我被告知:
Error response from daemon: manager stopped: failed to listen on remote API address: listen tcp 0.0.0.0:2377: bind: address already in use
Run Code Online (Sandbox Code Playgroud)
我没有其他 docker 镜像或服务在运行,所以我可以杀死或删除任何东西,但我似乎无法弄清楚如何清除这个端口以便我可以初始化一个新的群。
有没有办法 A)杀死正在运行的群体,或 B)列出可用的群体,以便我可以加入它,然后作为群体主从那里杀死它?
谢谢!
我知道要将字典转换为字符串/从字符串转换,我使用json.loads和json.dumps。但是,当给定一个表示字典列表的字符串时,这些方法会失败。例如,
sample_entry = [
{"type": "test", "topic": "obama", "interval": "daily"},
{"type": "test", "topic": "biden", "interval": "immediate"},
]
Run Code Online (Sandbox Code Playgroud)
将其转换为字符串str()给我们
"[{'topic': 'obama', 'interval': 'daily', 'type': 'test'}, {'topic': 'biden', 'interval': 'immediate', 'type': 'test'}]"
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将其转换回字典列表?eval正是我想要的,但我担心在用户提供的字符串上运行它。
是否有另一种方法可以在面对不同的列表长度和可变的空白时保持稳健?
编辑:虽然 json.loads(json.dumps(sample_entry)) 确实有效,但 json.loads(str(sample_entry)) 无效。区别似乎在于使用单引号和双引号的地方。我从中接收此字符串的数据源在使用 ' vs " 时不太可能保持一致,因此我想同时考虑两者。
我想在Page发布Wagtail对象时执行一个功能(具体来说,我有一个实用方法,可以发送电子邮件通知订阅者有新的博客页面可用)。
有没有我可以覆盖的方法(或者save其他方法)可以让我在发布时运行这个函数,或者甚至更好,在对象的第一次发布时运行?
简短问题 在 Pandas 中,合并两个数据帧的最方便的方法是什么,以便左侧数据帧中的所有条目都接收来自右侧数据帧的第一个匹配值?
更长的问题
假设我有两个电子表格:people.csv和orders.csv. people.csv包含有关此人的多列信息,而orders.csv包含此人的全名,以及该人所下订单数量的一行。
我需要创建第三个 csv,output.csv其中包含来自的所有列people.csv以及output.csv与两个电子表格中的一列匹配的列(一个称为“FULL_NAME”,另一个称为“CUSTOMER_FULL_NAME”)
people.csv在 FULL_NAME 字段上排序,但包含重复的行,因此在 FULL_NAME 列中有多个带有“John Smith”的行。也有重复的行,orders.csv但重复的数量不同(例如,people.csv可能有 4 个 John Smith 条目,但orders.csv可能只有两个)。
如果我使用以下代码:
people = pd.read_csv('people.csv')
orders = pd.read_csv('orders.csv')
full = pd.merge(
people,
orders,
left_on='FULL_NAME',
right_on='CUSTOMER_FULL_NAME',
)
result.to_csv("output.csv")
Run Code Online (Sandbox Code Playgroud)
...我得到一个 CSV,其中只有 FULL_NAME 字段中带有“John Smith”的两行包含 John Smith 的订单数。正下方的行在该字段中没有值。那是因为output.csv只包含两行与 John Smith 匹配的值,而people.csv有 4 行。
Pandas 中是否有一种方便的方法可以将一列的值设置为另一个数据框中的第一个匹配列,以便所有 4 个条目都包含来自 的第一个匹配值orders.csv? …
在我们的一个应用程序(运行Django 1.8)中,我们倾向于通过将字典传递到render()函数的context参数并将它们作为视图的一部分返回来呈现模板.例如:
from django.views.generic import View
class HomePageView(View):
def get(self, request, *args, **kwargs):
context = {'foo': 'bar', 'foo2': 'bar2'}
return render(request, "page.html", context)
Run Code Online (Sandbox Code Playgroud)
现在我已经开始寻找它,我看到人们使用Django"上下文"对象而不是字典的例子.
from django.views.generic import View
from django.template import Context
class HomePageView(View):
def get(self, request, *args, **kwargs):
context = Context()
context['foo'] = 'bar'
context['foo2'] = 'bar2'
return render(request, "page.html", context)
Run Code Online (Sandbox Code Playgroud)
文档显示此Context对象可以以类似于字典(pop,copy,key assignment等)的方式进行交互,并且具有flatten()方法,可以将其与字典进行比较. https://docs.djangoproject.com/en/1.8/ref/templates/api/#playing-with-context.
我的问题是:我有没有理由想要使用Context对象而不是字典?我可以看到如果有人想要轻松访问请求变量,有人可能会发现RequestContext的子类很有用,但我想我错过了上下文对象的实用程序.
我正在使用 Django 测试运行程序来运行我的单元测试。其中一些测试使用工厂在我的本地系统上创建大量文件。它们都有一个可检测的名称,并且可以相当容易地删除。
我试图避免
我编写了一个小型管理命令,用于删除符合预期约定的文件。有没有办法让测试运行程序call_command在完成整个测试套件后运行(而不仅仅是在特定测试的tearDown或方法中)?tearDownClass
我有一个自定义的 Django 管理员,我在其中指定了一个模板和一个要使用的自定义表单
class StoryAdmin(BaseAdmin):
form = Edit_Story_Form
change_form_template = "CMS/Editorial/AdminStory/AdminStory.html"
def change_view(self, request, object_id, form_url='', extra_context=None):
extra_context = extra_context or {}
thing = Story.objects.get(pk=object_id)
extra_context['workflowstate'] = thing.workflowstate.title()
extra_context['last_updated'] = thing.updateddate
return super(StoryAdmin, self).change_view(request, object_id, form_url, extra_context=extra_context)
admin.site.register(Story, StoryAdmin)
Run Code Online (Sandbox Code Playgroud)
表格如下:
class Edit_Story_Form(ModelForm):
headline = forms.CharField()
subheadline = forms.CharField()
add_block = forms.CharField(widget=forms.HiddenInput(), label='', required=False)
class Meta:
model = Story
fields = []
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
request = self.request
super(Edit_Story_Form, self).__init__(*args, **kwargs)
zones = Zone.objects.filter(story=self.instance)
for zone …Run Code Online (Sandbox Code Playgroud) 我有一个带有两个附加SerializerMethodField字段的序列化器:
class BentoSerializer(ModelSerializer):
zones = SerializerMethodField()
lead_zone = SerializerMethodField()
def get_zones(self, obj):
zone_queryset = obj.get_zones()
return ZoneSerializer(zone_queryset, many=True).data
def get_lead_zone(self, obj):
zone_queryset = obj.get_lead_zone()
return ZoneSerializer(zone_queryset).data
class Meta:
model = Bento
fields = ('lead_zone', 'zones', )
Run Code Online (Sandbox Code Playgroud)
我需要将来自序列化器的数据嵌套为JSON(ZoneSerializer包含SerializerMethodField其自身的相似的s和正常模型字段),但它以OrderedDict的形式出现。
有没有一种方法可以配置序列化器,以使其BentoSerializer(obj).data返回嵌套的JSON,我应该将OrderedDicts递归地转换为dict,还是有一些我不知道的获取未排序数据的其他序列化器方法?
非常感谢!
PS:当前示例数据来自通过串行器发送的工厂对象:
[OrderedDict([('order', 1), ('columns', [OrderedDict([('order', 1), ('blocks', [OrderedDict([('order', 1), ('block_type', 'Text'), ('blockcontent', 'Cum inventore sed fugit aliquam doloribus. Alias exercitationem odit asperiores rerum qui aperiam cum fugit.'), ('heading', 'Adipisci possimus dolore assumenda sapiente velit amet …Run Code Online (Sandbox Code Playgroud) 我有一个自定义用户模型:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
is_happy = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)
我在 内引用它AUTH_USER_MODEL。
我已经根据 UserAdmin 为其生成了一个管理员
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from .models import User
@admin.register(User)
class UserAdmin(DjangoUserAdmin):
pass
Run Code Online (Sandbox Code Playgroud)
但该is_happy字段不会出现在用户管理页面中。
我如何/在哪里告诉该用户管理员我希望它显示的其他字段?
更多细节
django ×8
python ×8
csv ×1
django-mptt ×1
docker ×1
expo ×1
factory-boy ×1
firebase ×1
forms ×1
json ×1
jwt ×1
mptt ×1
pandas ×1
postgresql ×1
pyjwt ×1
python-3.x ×1
react-native ×1
unit-testing ×1
wagtail ×1
xcode ×1