Django上传模型 - 用户权限

时间:2017-10-30 00:48:41

标签: django django-models django-forms django-authentication django-permissions

我正在创建一个文件上传页面,其中包含文件上传模型:

models.py

class Upload(models.Model):
    file = models.FileField(blank=True, null=True, validators=[validate_file_extension])
    upload_date = models.DateTimeField(auto_now_add=True)
    class Meta:
        permissions = (
            ('can_upload_x', 'Can Upload X'),
            ('can_upload_y', 'Can Upload Y'),
            ('can_upload_z', 'Can Upload Z'),
        )

forms.py

class UploadFileForm(forms.ModelForm):
class Meta:
    model = Upload
    fields = ['file']

HTML

{% if perms.app.can_upload_x %}

<form action="#" method="post" enctype="multipart/form-data">
<input type='hidden' name='action' value='x'>
    {% csrf_token %} {{form_x}}
<input type="submit" value="Upload" id="weights_btn" name="weights_btn" 
class="btn btn-default btn-file"/>
</form>
{%endif%}

#etc for X, Y, Z, ....

因此,最终目标是分配给管理员的某些权限的用户,例如'can_upload_x',只能看到X等表单(我在视图中使用handle_uploaded_file将不同的表单保存到不同的位置)。

我做错了什么?似乎不起作用。但是,当我为每个表单创建一个模型时,它确实有效,但由于我可能需要有很多不同的表单,所以我的项目不可行。

谢谢!

1 个答案:

答案 0 :(得分:0)

{% if perms.app_label.can_do_something %}
    <form here>
{% endif %}

是由app_label命名的app