0

私は、ファイルのアップロードモデルを持つファイルのアップロードページ作成しています:Djangoがモデルをアップロード - ユーザー権限

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をビュー)。

私は間違っていますか?動作していないようです。それは私が各フォームのモデルを持っていたときには機能しましたが、私は多くの異なるフォームを持つ必要があったので、私のプロジェクトでは実行できません。

ありがとうございました!

答えて

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

appによって名付けあなたapp_labelのですか?

+0

これは「upload_auth」と呼ばれています。私はできるだけジェネリックとしてサンプルを作成しようとしました。 –

+0

'{%ならperms.upload_auth.can_upload_x%}' – Ykh

関連する問題