我正在使用 Celery + RabbitMQ 在我的 Django 应用程序中排队任务,
我想使用 task_id 和 task_state 跟踪任务的状态。
为此,我创建了一个 TaskModel(Model) 来存储数据库中的 task_id、task_state 和一些附加数据。在任务执行时,一个新的 TaskModel 对象会随着任务的进行而保存和更新。一切正常。
但是,我仍然需要添加很多功能和特性以及错误保护等。那时我记得 celery 文档提到了 django-celery-results。
所以我遵循了 django-celery-results 文档说明。任务结果存储在默认 django 数据库中的专用表中,但是仅在任务结束后......而不是在 PENDING、STARTED 状态期间。
是否可以使用 django-celery-results 在 PENDING 和 STARTED 状态期间存储和查询任务?或不?
谢谢
假设我有两种型号:
level:
id
file_number
status
level_process:
process_ptr_id
level_id
Run Code Online (Sandbox Code Playgroud)
我想结合我上面的两个表,使用django-rest-framework在一个API中显示它.我正在寻找互联网上的例子,我找不到它...顺便说一下我使用的方式 python 2.7 , django 1.10.5 and djangorestframework 3.6.2
serializer.py
class LevelSerializer(serializers.HyperlinkedModelSerializer):
id = serializers.ReadOnlyField()
class Meta:
model = Level
fields = ('__all__')
class LevelProcessSerializer(serializers.ModelSerializer):
level = LevelSerializer(read_only=True)
class Meta:
model = LevelProcess
fields = ('__all__')
views.py
class ViewLevelProcessViewSet(viewsets.ModelViewSet):
processes = LevelProcess.objects.all()
serializer_class = LevelProcessSerializer(processes, many=True)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用django登录视图实现登录页面,这里是代码:
urls.py
urlpatterns = patterns(
'',
url(r'^login/$', 'django.contrib.auth.views.login'),
url(r'^logout/$', 'django.contrib.auth.views.logout'),
)
Run Code Online (Sandbox Code Playgroud)
和模板:
的login.html
{% extends 'base_cost_control.html' %}
{% block contentbase %}
{% if form.errors %}
<p>Invalid user or password</p>
{% endif %}
<form method="post" action="{% url 'django.contrib.auth.views.login' %}">
{% csrf_token %}
<div class="row" align="center">
<br>
<br>
<h3> CONTROL DE COSTOS </h3>
<br><br>
<table>
<tr>
<td width=700px>{%include "partials/field.html" with field=form.username %}</td>
</tr>
<tr>
<td width=700px>{%include "partials/field.html" with field=form.password %}</td>
</tr>
<tr>
<td align="right"><input type="submit" class="btn btn-info" name = "siguiente" id="siguiente" value="Ingresar"/></td> …Run Code Online (Sandbox Code Playgroud) 我在模板中有一个javascript onclick事件,我想从它调用一个带有id参数的django url,如下所示:
$(document).on('click', '.alink', function () {
var id = $(this).attr('id');
document.location.href ="{% url 'myapp:productdetailorder' id %}"
});
Run Code Online (Sandbox Code Playgroud)
当然这根本不起作用.任何的想法 ?
提前致谢 !!
我正在尝试使用 AngularJS 上传图像。
我有这样的模型:
class Profile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=20)
profile_picture = ImageField(upload_to=settings.MEDIA_ROOT, blank=True)
Run Code Online (Sandbox Code Playgroud)
我有序列化程序:
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
Run Code Online (Sandbox Code Playgroud)
我有这样的视图:
class ProfileViewSet(viewsets.ModelViewSet):
queryset = Profile.objects.all()
serializer_class = ProfileSerializers
Run Code Online (Sandbox Code Playgroud)
我的帖子转储是这样的:
name: "David"
user: 1
profile_picture: ""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…917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de6//U36fYf6Z697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuv/1d+n2H+meve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r/9bfp9h/pnr3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de6//Z""
Run Code Online (Sandbox Code Playgroud)
但是,给我 400 BAD REQUEST 错误。错误信息是:
{"profile_picture":["The submitted data was not a file. Check the encoding type on the form."]}
Run Code Online (Sandbox Code Playgroud) 我有一个django表单,我想验证当我要保存时字段不为空,让我们说例如"description"字段(charfield)....这是我的form.py代码:
from django.core.exceptions import ValidationError
class CostItemsForm(ModelForm):
groupid = forms.CharField(required=True)
def __init__(self, *args, **kwargs):
super(CostItemsForm, self).__init__(*args, **kwargs)
class Meta:
model = CostItems
fields = [
'description',
'usd_value',
'rer',
'pesos_value',
'supplier',
'position',
'observations',
'validity_date',
]
def clean_description(self):
des = self.cleaned_data['description']
if des==None:
raise ValidationError("Description cannot be empty")
return des
Run Code Online (Sandbox Code Playgroud)
但没有任何反应,已经尝试过回到这样的:return self.cleaned_data和return clean_description,但还是一样.
这是我的view.py:
class CostItemInsert(View):
template_name='cost_control_app/home.html'
def post(self, request, *args, **kwargs):
if request.user.has_perm('cost_control_app.add_costitems'):
form_insert = CostItemsForm(request.POST)
if form_insert.is_valid():
form_save = form_insert.save(commit = False) …Run Code Online (Sandbox Code Playgroud) 在 Azure webapp 上获得了我的 Django 项目,但是当我调用 SSH 终端时:
Python manage.py collectstatic
它说复制了 252 个文件,但我的静态文件在我的模板上不可见,wwwroot 中的静态文件夹是空的...这是我的 wwwroot 结构:
wwwroot
|---Myproject
|---manage.py
|---oryx-manifest.toml
|---hostingstart.html
|---static //With all my static files
??? myapp
? ??? migrations
? ??? __pycache__
? ??? static
| | |---Images
| | | |--myimage.png
| | | |--myimage2.png
? ??? templates
Run Code Online (Sandbox Code Playgroud)
这是我的settings.py:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
('myapp', os.path.join(BASE_DIR, 'myapp', 'static')),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
Run Code Online (Sandbox Code Playgroud)
知道为什么或我做错了什么吗?Azure 收集不同吗? …
我收到此错误是由URL模板标记引起的:
在模板C:\ Users \不要恐慌\ BitNami DjangoStack项目\ Templates\polls\index.html,第5行的错误
我真的不知道为什么会这样.我尝试删除该行,它工作正常,所以我认为这是唯一一个导致麻烦的人.
(顺便说一句,我在Django 1.4.1)
此外,我已经尝试删除引号并删除第一行及其中的所有组合.帮我?
1 {% load url from future %}
2 {% if latest_poll_list %}
3 <ul>
4 {% for poll in latest_poll_list %}
5 <li><a href="{% url 'polls.views.detail' poll.id %}">{{ poll.question }}</a></li>
6 {% endfor %}
7 </ul>
8 {% else %}
9 <p>No polls are available</p>
10 {% endif %}
Run Code Online (Sandbox Code Playgroud) 我使用联合 js 库在 html 中创建一个图表,但我需要它像 mi 站点一样响应。事实是,我将它放在一个带有 java 类的 div 中,该类打开并关闭此代码:
$('.open-down-up').click(function(){
var nameMore = $(this).attr("name");
var valMore = $(this).attr("value");
if(valMore == 0){
$(this).find('span').empty();
$(this).find('span').append("▼");
$('div[id='+nameMore+']').slideDown("normal");
$(this).attr("value","1");
}else if(valMore == 1){
$(this).find('span').empty();
$(this).find('span').append("►");
var n = nameMore.indexOf("process_process");
$('div[id='+nameMore+']').slideUp("normal", function(){
var n = nameMore.indexOf("process_process");
if(n > -1){
hide_panel_all();
}
});
$(this).attr("value","0");
}
});
Run Code Online (Sandbox Code Playgroud)
所以,我已经尝试过这样的事情:
var graph = new joint.dia.Graph;
var paper = new joint.dia.Paper({
el: $('#modelCanvas'),
gridSize: 10,
height: $('#modelCanvas').height(),
width: $('#modelCanvas').width(),
gridSize: 1,
model: graph,
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用......我可以应用任何想法或方法?
提前致谢。
我得到了这个视图,并且正在使用PermissionRequiredMixin它......它工作正常,但是当我重定向到登录模板(在设置中设置LOGIN_URL)时,我需要它显示一条消息,例如“您无权执行此操作”。知道如何在不创建自定义装饰器而仅使用PermissionRequiredMixin其自身的情况下做到这一点吗?
from django.contrib.auth.mixins import PermissionRequiredMixin
class MyView(PermissionRequiredMixin,View):
template = 'myapp/item_detail.html'
permission_required = 'myapp.change_item'
def get(self, request, *args, **kwargs):
#Query here
return render(request, self.template)
Run Code Online (Sandbox Code Playgroud)
为了实现这一目标,我需要添加什么?
django ×9
python ×3
javascript ×2
azure ×1
django-forms ×1
django-urls ×1
jointjs ×1
jquery ×1
responsive ×1
url ×1
validation ×1