2014-02-21 59 views
1

我是新的django.I做一个项目,用户可以上传image.But我想确保用户不能上传图像或文件,直到管理员批准现在我该如何做到这一点,为此准备了模型,但是由于django缺乏经验,我无法完成它,或者你可以说我没有线索,现在可以帮助我,如果可以的话,我在这里给出一个非常简单的代码。限制上传,直到管理员批准上传的文件在Django

这是我上传图像forms.py ...

from django import forms 

class DocumentForm(forms.Form): 
    photo = forms.ImageField(
         label='Select a file' 
        ) 

,这是我的models.py ...

from django.db import models 
from django.contrib.auth.models import User 

class Photo(models.Model): 
    name = models.CharField(max_length = 100) 
    photo = models.ImageField(upload_to = 'photos', blank=False,null=True) 
    approved = models.nullBooleanField() 
    uploaded_time = models.DateTimeField(auto_now_add = True,auto_now = False) 
    description = models.CharField(max_length = 80 , blank = False , null = True) 
    approved_by = models.CharField(max_length = 100) 
    user = models.ForeignKey(User) 

这里我做一个现场的批准为布尔字段。

,这是视图文件/图片上传...

def UserImageUpload(request): 

    if request.method == 'POST': 
     form = DocumentForm(request.POST,request.FILES) 
     if form.is_valid(): 
     if approved: 
     newdoc = Photo(photo = request.FILES['photo'],user = request.user) 
     newdoc.save() 
     else: 

    else: 
    form = DocumentForm() 

    uploaded_image = Photo.objects.all() 

    return render_to_response('myprofile/user_image_upload.html',{'uploaded_image':uploaded_image,'form':form},context_instance = RequestContext(request)) 

,这是文件或图片上传模板...

{% extends 'base.html'%} 
{% block title%}User Image Upload {% endblock %} 
{%block content%} 

    <form action="" method="post" enctype="multipart/form-data"> 
     {% csrf_token %} 
     <p>{{ form.non_field_errors }}</p> 
     <p>{{ form.photo.label_tag }} {{ form.photo.help_text }}</p> 
     <p> 
      {{ form.photo.errors }} 
      {{ form.photo }} 
     </p> 
     <p><input type="submit" value="Upload" /></p> 
</form> 

{%endblock%} 

回答

1

我想应该是这样的: 1.用户上传图片,并设置为false。 2.在管理页面中,您可以将批准更改为true。 3.在现场显示图像之前,请检查它是否被批准。