我不断看到使用了以下装饰:@staticmethod,@property例如:
@staticmethod
def add_url():
return reverse('add_user')
@property
def password_not_expired(self):
return not self.password_expired
Run Code Online (Sandbox Code Playgroud)
有人可以解释何时使用其中一个?说我想添加此代码:
def get_user_type(self):
return self.user_type
Run Code Online (Sandbox Code Playgroud)
我会用一种@staticmethod方法吗?
在我的主管文件中,我已经添加.%h到我的工作人员姓名(芹菜)的末尾,以使它们独一无二.例如:
[program:celery_worker]
directory = /srv/project/
command=celery -A tasks worker -l info -n default.%h
Run Code Online (Sandbox Code Playgroud)
但是,由于添加了此更改主管将不再更新或开始提供错误:
,"CANT_REREAD:格式字符串'celery -A任务worker -l info -n default.%h'for'command'格式错误""> file:/usr/lib/python2.7/dist-packages/supervisor/supervisorctl .py行:947
我该如何解决这个问题?
我正在尝试从这个 json 中打印所有汽车:
{
"stuff": [
{
"car" : 1,
"color" : "blue"
},
{
"bcarus" : 2,
"color" : "red"
}
],
}
Run Code Online (Sandbox Code Playgroud)
In my Serializer I access the data like this....
stuff = self.context.get("request").data.stuff
But when I do the following...
for item in stuff:
print(item)
Run Code Online (Sandbox Code Playgroud)
I get he error:
'builtin_function_or_method' object is not iterable
Why do I get this error?
How can I access stuff in a for loop?
When I do print(self.context.get("request").data.stuff) I get <built-in method …
当检索带有values_listPK 的查询集时,UUIDFieldDjango 会为您提供 UUIDField 对象列表而不是字符串 UUID 列表。
例如,以下给了我一个查询集:
items = Item.objects.values_list('id', flat=True).filter()
Run Code Online (Sandbox Code Playgroud)
其中的输出print(items)是:
[UUID('00c8aa9e-2f61-4bac-320c-ab26b8fb1de9')]
Run Code Online (Sandbox Code Playgroud)
但我希望该列表是 UUID 的字符串表示,即
['00c8aa9e-2f61-4bac-320c-ab26b8fb1de9']
Run Code Online (Sandbox Code Playgroud)
我可以对循环中的每个对象执行此操作,但我想更改整个查询集。这可能吗?
我试过了:
print(str(items))
Run Code Online (Sandbox Code Playgroud) 我有一个 Makefile,用于构建我的 docker 映像。
NAME = demo/docker-test
default: build
build:
docker build -t $(NAME) .
push:
docker push $(NAME)
Run Code Online (Sandbox Code Playgroud)
我想build从我的 Git 标签附加到最新版本,即
build:
docker build -t $(NAME):$(VERSION) .
Run Code Online (Sandbox Code Playgroud)
因此,如果我在 Git 中有 3 个标签v.1.2,v.1.3则v.1.4VERSION 将为v.1.4.
这可以在 Makefile 中实现吗?如果是这样,我该从哪里开始?
下面给出错误的是什么?我不确定这是我安装的应用程序或我的应用程序的问题.以下例外仅在运行Celery时生成,即celery -A demo.apps.wall.tasks workerrunserver不会生成任何错误.哪个应用程序问题?
Traceback (most recent call last):
File "/Users/user/Documents/workspace/demo-api/env/bin/celery", line 11, in <module>
sys.exit(main())
File "/Users/user/Documents/workspace/demo-api/env/lib/python3.5/site-packages/celery/__main__.py", line 30, in main
main()
File "/Users/user/Documents/workspace/demo-api/env/lib/python3.5/site-packages/celery/bin/celery.py", line 81, in main
cmd.execute_from_commandline(argv)
File "/Users/user/Documents/workspace/demo-api/env/lib/python3.5/site-packages/celery/bin/celery.py", line 770, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/Users/user/Documents/workspace/demo-api/env/lib/python3.5/site-packages/celery/bin/base.py", line 309, in execute_from_commandline
argv = self.setup_app_from_commandline(argv)
File "/Users/user/Documents/workspace/demo-api/env/lib/python3.5/site-packages/celery/bin/base.py", line 469, in setup_app_from_commandline
self.app = self.find_app(app)
File "/Users/user/Documents/workspace/demo-api/env/lib/python3.5/site-packages/celery/bin/base.py", line 489, in find_app
return find_app(app, symbol_by_name=self.symbol_by_name)
File "/Users/user/Documents/workspace/demo-api/env/lib/python3.5/site-packages/celery/app/utils.py", line 238, in find_app
sym = imp(app)
File "/Users/user/Documents/workspace/demo-api/env/lib/python3.5/site-packages/celery/utils/imports.py", line 101, …Run Code Online (Sandbox Code Playgroud) 使用 Python 3.x 和 Django Rest 框架。我有一个带有Recursive Field (自身)的序列化器,它按预期工作。但是,我需要一种方法来最初过滤它返回的嵌套子项active = True。
我尝试了不同的方法来通过active=True过滤子项,但我无法在序列化器中返回的嵌套子项上使用此方法。
这是我所拥有的。
class MenuListSerializer(serializers.ModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='menu_detail')
children = RecursiveField(many=True, required=False)
class RecursiveField(serializers.Serializer):
"""
Self-referential field for MPTT.
"""
def to_representation(self, value):
serializer = self.parent.parent.__class__(value, context=self.context)
return serializer.data
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的方法,但出现错误ListSerializer' object has no attribute 'queryset'但是,我什至不确定这是否有效。
class MenuListSerializer(serializers.ModelSerializer):
def __init__(self, *args, request_user=None, **kwargs):
# try and filter active in chrildrend before query set is passed
super(MenuListSerializer, self).__init__(*args, **kwargs)
# print(self.fields['children'].parent)
self.fields['children'].queryset = self.fields['children'].queryset.filter(active=True) …Run Code Online (Sandbox Code Playgroud) 我是Django的新手,需要了解文件结构.下面是我的Django项目的一个例子(缺少一些文件)
令我困惑的是,在真实服务器上进行生产以及我的文件结构如何相关.
我对这个问题有以下问题,我认为如果回答这些问题会帮助我理解.
它的结构好吗?
project
manage.py
templates [folder]
myapp1 [folder]
models.py
views.py
projectname [folder]
urls.py
settings.py
Run Code Online (Sandbox Code Playgroud)在注册时保存我的用户后,我收到以下错误消息.有人能解释为什么吗?
谢谢
错误信息
IntegrityError at /member/registration/
(1048, "Column 'user_id' cannot be null")
Exception Type: IntegrityError at /member/registration/
Exception Value: (1048, "Column 'user_id' cannot be null")
Run Code Online (Sandbox Code Playgroud)
view.py
if form.is_valid():
# If form has passed all validation checks then continue to save member.
user = User.objects.create_user(
username=form.cleaned_data['username'],
email=form.cleaned_data['email'],
password=form.cleaned_data['password']
)
user.save()
#member = User.get_profile()
#member.name = form.cleaned_data['name']
#member.save()
member = Member(
name=form.cleaned_data['name']
)
member.save()
Run Code Online (Sandbox Code Playgroud)
models.py
class Member (models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud) 任何人都可以在以下示例中发现我做错了什么。当输入不正确的详细信息(例如无效的电子邮件地址)时,验证消息不会出现在我的模板中。模板正在加载并且没有错误。
我正在排除要在页面上打印的验证消息,但是由于某种原因,这突然停止工作。正如您从下面的代码示例中看到的,我将上下文中的表单传递回模板。这曾经有效,今天刚刚停止。
查看.py
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
# If form has passed all validation checks then continue to save member.
user = User.objects.create_user(
username=form.cleaned_data['username'],
email=form.cleaned_data['email'],
password=form.cleaned_data['password']
)
user.save()
#member = User.get_profile()
#member.name = form.cleaned_data['name']
#member.save()
member = Member(
user=user,
name=form.cleaned_data['name']
)
member.save()
# Save is done redirect member to logged in page.
return HttpResponseRedirect('/profile')
else:
# If form is NOT valid then show the registration page again.
form = RegistrationForm()
context = {'form':form}
return render_to_response('pageRegistration.html', …Run Code Online (Sandbox Code Playgroud) django ×7
python ×7
celery ×2
django-forms ×1
docker ×1
git ×1
makefile ×1
python-3.x ×1
supervisord ×1