0

내가 파일 업로드 모델이있는 파일 업로드 페이지 만드는 오전 :장고 업로드 모델 - 사용자 권한

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

시도'{% if perms.upload_auth.can_upload_x %}' – Ykh