Django上传限制

时间:2016-09-14 05:33:26

标签: python django

我想限制上传文件中的用户数量。例如: 每天,用户仅限于1个图像文件。

视图

class Upload(views.LoginRequiredMixin, generic.CreateView):
model = Posts
form_class = UploadForm
template_name = 'icerik_yukle.html'

def form_valid(self, form):
    self.object = form.save(commit=False)
    self.object.author= self.request.user
    self.object.save()
    return super(Upload, self).form_valid(form)

模型

class Gonderi(models.Model):
    author= models.ForeignKey(User, related_name="gonderi")
    slug = models.SlugField(unique=True, max_length=10, default=id_olustur)
    image = models.FileField(upload_to=yukleme_adresi, blank=True)
    subject= models.CharField(max_length=50, blank=True)
    descrip = models.TextField(max_length=250, blank=True)
    category= models.ForeignKey(Kategori, verbose_name="Kategori")
    tags = TaggableManager()
    created= models.DateTimeField(auto_now_add=True)
    updated= models.DateTimeField(auto_now=True)
    is_public = models.BooleanField(verbose_name='Göster', default=True)

1 个答案:

答案 0 :(得分:2)

检查是否存在当天的记录以及是否具有该用户的有效图片。如果有,则提出异常

def form_valid(self, form):
    from datetime import datetime
    query = Gonderi.objects.filter(created__date=datetime.now().date(),
                                   author=request.user)
    instance = query[0] if query.count() > 0 else None
    if instance and instance.image:
        #raise your error over here


    self.object = form.save(commit=False)
    self.object.author= self.request.user
    self.object.save()
    return super(Upload, self).form_valid(form)