로그인 한 사용자 만 사용할 수있는 FileField를 만들려면 어떻게해야합니까?Django : 로그인 한 사용자 만 파일 필드 사용 가능
0
A
답변
2
다른 양식을 사용자에게 표시하려면 다른 ModelForm (또는 양식)이 필요합니다.
class FormWithoutFormField(RegularForm):
class Meta:
exclude = ('field_name',)
이 표시 할 새로운 형태의 내부 간다 :이 양식은 다음과 같이 될 것이다. 사용중인 다른 양식을 확장한다는 점에 유의하십시오. 이렇게하면 모든 것을 그대로 유지해야하며 원치 않는 필드는 제외시킬 수 있습니다.
그런 다음 사용자가보기에 로그인되어 있는지 확인해야합니다. 즉, 다음과 같은 것입니다 :
if request.user.is_authenticated():
form_class = FormWithoutFileField
else:
form_class = RegularForm
# Do whatever you did with the normal form, but now with the new form.
1
당신은 장고 관리자 또는 사용자 정의 템플릿을 필요로하는지 설명하지 않았습니다. 사용자 정의 템플릿 /보기의 경우 다른 양식이 필요하지 않습니다. 템플릿에서이 작업을 수행하십시오.
<div id="blah">
{% if user.is_authenticated %}
<a href="{{ somemodel.somefilefield.url }}">Download the file</a>
{% else %}
<p>No downloading for you!</p>
{% endif %}
</div>
는 약 handling static files 장고에서 읽은 것을 제공.
일반적인보기를 사용하고 있습니까, 아니면 직접 작성하고 있습니까? 어떤 코드가 있습니까? – Paragon