小编Buk*_*uky的帖子

使用Django同时运行UWSGI和ASGI

我目前正在运行一个带有uWSGI的Django(2.0.2)服务器,有10个工作人员

我正在尝试实现实时聊天,我看了一下Channel.该文档提到服务器需要与Daphne一起运行,而Daphne需要一个名为ASGI的UWSGI异步版本.

我管理安装和设置ASGI,然后用daphne运行服务器,但只有一个工作者(我理解的ASGI的限制),但负载对于工作者来说太高了.

是否可以使用带有10个工作程序的uWSGI运行服务器来回复HTTP/HTTPS请求并使用ASGI/Daphne进行WS/WSS(WebSocket)请求?或者也许可以运行ASGI的多个实例?

django uwsgi django-channels daphne

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

Django:带条件的ModelForm

我正在尝试创建一个表单变量。默认播放器的级别为 0,他可以更改名称。以后到了1级,就可以改名字和头像了。当他3级时,他可以改变名字、头像和工作。等等...

模型.py:

class Player(models.Model):
    level = models.SmallIntegerField(default=0) 
    name = models.CharField(max_length=50)
    avatar = models.URLField(default='http://default-picture.com/01.png')
    job =  models.TextField(null=True)
Run Code Online (Sandbox Code Playgroud)

Formrs.py:

class ProfileForm(forms.ModelForm):

class Meta:
    model = Player
    fields = ['name', 'avatar', 'job']
    widgets = {
        'name': forms.TextInput(),
        'avatar': forms.TextInput(),
        'job': forms.Textarea(),
    }
Run Code Online (Sandbox Code Playgroud)

视图.py:

def game(request, id):
    user = get_object_or_404(Player, id=id)
    if request.method == 'POST':
        form = ProfileForm(request.POST, instance=user)
        if form.is_valid():
            form.save()
            return HttpResponse('Success')
    else:
        form = ProfileForm(instance=user)
    return render(request, "page/template.html",
            {'form': form})
Run Code Online (Sandbox Code Playgroud)

模板.html:

{{ form }}
Run Code Online (Sandbox Code Playgroud)

在将表单发送到渲染引擎之前,可以为表单的渲染添加条件吗?或者我需要在我的模板中使用条件来完成?

我只是何时允许实例化对象在这些参数之一方面具有更多或更少的可能性(在示例中是玩家的级​​别)。

django django-templates django-models django-forms django-views

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