小编Dem*_*ris的帖子

REST API身份验证

我正在构建一个将托管在服务器上的应用程序.我想为应用程序构建一个API,以便于与任何平台(Web App,Mobile App)进行交互.我不理解的是,在使用REST API时,我们如何对用户进行身份验证.

例如,当用户已登录然后想要创建论坛主题时.我怎么知道用户已经登录?

api rest

180
推荐指数
4
解决办法
20万
查看次数

在Celery中通过id检索任务结果

我试图检查已完成的任务的结果. 这有效

from proj.tasks import add
res = add.delay(3,4)
res.get()
7
res.status
'SUCCESS'
res.id
'0d4b36e3-a503-45e4-9125-cfec0a7dca30'
Run Code Online (Sandbox Code Playgroud)

但我想从另一个应用程序运行它.所以我重新运行python shell并尝试:

from proj.tasks import add
res = add.AsyncResult('0d4b36e3-a503-45e4-9125-cfec0a7dca30')
res.status
'PENDING'
res.get() # Error
Run Code Online (Sandbox Code Playgroud)

如何检索结果?

celery

26
推荐指数
2
解决办法
2万
查看次数

在Django管理对象页面中显示对象ID(主键)

假设我有以下内容model.py:

class Book(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=100, unique=True)
Run Code Online (Sandbox Code Playgroud)

我在admin.py使用中注册此模型:

admin.site.register(Book)
Run Code Online (Sandbox Code Playgroud)

Book在admin中查看现有内容时,仅该name字段可见。

我的问题是:此页面也可以显示ID吗?

我发现的大多数答案都与管理员列表有关,而不是与对象实例页面有关。显示ID字段的一种方法是通过editable=False从模型定义中删除来使其可编辑。但是,我想使其保持只读状态。

python django django-models django-admin

6
推荐指数
1
解决办法
3787
查看次数

在 Django 1.11 中为自定义用户添加额外的字段

我有一个自定义用户模型,它是由AbstractUser添加的自定义字段子类化的。

# model.py
from django.db import models
from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
    ADM = 'admin'
    MEMBER = 'member'
    ROLE_CH = ((ADM, 'Administrator'), (MEMBER, 'Member'))

    role = models.CharField(max_length=20, choices=ROLE_CH, blank=True)
Run Code Online (Sandbox Code Playgroud)

此模型也注册为默认身份验证模型 settings.py

# settings.py
AUTH_USER_MODEL = "main.CustomUser"
Run Code Online (Sandbox Code Playgroud)

然后admin.py根据文档,我创建了一个自定义表单,该表单扩展UserCreationForm并将其注册到自定义用户。

# admin.py
from django.contrib import admin
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.admin import UserAdmin
from .models import CustomUser

class CustomUserCreationForm(UserCreationForm):

    class Meta(UserCreationForm.Meta):
        model = CustomUser
        fields = UserCreationForm.Meta.fields + ('role',)

class CustomUserAdmin(UserAdmin):
    add_form = …
Run Code Online (Sandbox Code Playgroud)

django django-admin django-custom-user

6
推荐指数
1
解决办法
3120
查看次数

在Docker容器中运行Jenkins时如何在主机上构建

我在Docker容器中运行Jenkins实例,并将其连接到Bitbucket存储库。当在线存储库中发生某些更改时,Jenkins将下载新的源。基于新的源代码,我想创建一个新的Docker映像,但这需要在主机上进行,因为它是我安装Docker的位置。

我还没有弄清楚如何在主机上运行某些东西,但是与此同时,我了解到Docker用于隔离进程,所以这是设计使然。有没有办法做到这一点?

jenkins docker

5
推荐指数
1
解决办法
1949
查看次数

如何在tkinter窗口中添加边距?

所以到目前为止我有一个简单的python tkinter窗口,我正在添加文本,按钮等.

片段:

class Cfrm(Frame):

    def createWidgets(self):

        self.text = Text(self, width=50, height=10)
        self.text.insert('1.0', 'some text will be here')
        self.text.tag_configure('big', font=('Verdana', 24, 'bold'))


        self.text["state"] = "disabled"
        self.text.grid(row=0, column=1)

        self.quitw = Button(self)
        self.quitw["text"] = "exit",
        self.quitw["command"] = self.quit
        self.quitw.grid(row=1, column=1)


    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.createWidgets()
Run Code Online (Sandbox Code Playgroud)

问题是,我希望在窗口周围有大约15-20 px的边距,我到处寻找,我找不到解决方案.也

self.text.tag_configure('big', font=('Verdana', 24, 'bold'))
Run Code Online (Sandbox Code Playgroud)

不起作用.任何可能的解决方

python tkinter

4
推荐指数
2
解决办法
3万
查看次数

如何控制 Django Rest Framework (DRF) 中的版本控制

我想知道控制移动应用程序 API 版本的最佳实践是什么。

要求

  • 如果我更改数据库中的某些内容,应用程序的先前版本不应受到影响。
  • 目前我正在做...
path('v1/auth/', include('authentication.urls')),
path('v2/auth/', include('authentication.urls2')), # Example
path('v1/api/', include('contentstudio.urls')),
Run Code Online (Sandbox Code Playgroud)

django django-models django-views django-rest-framework drf-nested-routers

4
推荐指数
1
解决办法
2379
查看次数

使用Python驱动程序检查Cassandra表中是否存在记录

如何确定表中是否存在记录?我尝试的方式是进行SELECT查询,然后ResultSet使用以下内容计算行的行数:

rows = session.execute("SELECT * FROM test_table WHERE id=%s", ([<id_here>]))
if len(rows) == 0:
    print "Does not exist"
Run Code Online (Sandbox Code Playgroud)

但是,ResultSet不支持len.在另一个答案中,他们建议使用SELECT COUNT(*)在另一个参考文献中强烈劝阻.有更标准的方法吗?

python cassandra

3
推荐指数
1
解决办法
4669
查看次数

Cassandra加载状态不更新(nodetool状态)

使用nodetool status我可以读出Load每个节点.在表中添加或删除数据应该对该值产生直接影响.但是,无论nodetool status命令执行多少次,值都保持不变.

Cassandra 文档声明该Load值需要90秒才能更新.即使在运行命令之间允许几分钟,结果总是错误的.我能够更新此值的唯一方法是重新启动节点.

我不相信它是相关的,但我应该补充说我正在使用docker容器来创建集群.

cassandra

1
推荐指数
1
解决办法
711
查看次数

从WooCommerce Storefront主题中删除面包屑

为了从Storefront主题中删除面包屑,文档声明要添加以下内容functions.php:

remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
Run Code Online (Sandbox Code Playgroud)

我在Storefront的子主题中尝试了这个,但它不起作用.追溯woocommerce_breadcrumb,它似乎被添加到storefront_content_top行动中(在文件中<storefront_dir>/inc/woocommerce/storefront-woocommerce-template-hooks.php.我注释掉相应的行,实际上面包屑是隐藏的.

但是,要以正确的方式执行此操作,我尝试使用子主题禁用它

remove_action( 'storefront_content_top', 'woocommerce_breadcrumb', 10 );
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我应该澄清一下,我在一个没有其他代码的新鲜儿童主题中测试它.

如何禁用儿童主题中的面包屑?

wordpress woocommerce hook-woocommerce

1
推荐指数
2
解决办法
4645
查看次数