Saadettin Yasir AKEL
Saadettin Yasir AKEL

Reputation: 81

Django upload limits

I want to make've limited the number of users on the upload file. For example: Every day, users are limited to 1 image file.

Views

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)

Models

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)

Upvotes: 0

Views: 98

Answers (1)

levi
levi

Reputation: 22697

Check if exists a record for the current day and if it has a valid picture for the user. If there is, raise an exception

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)

Upvotes: 2

Related Questions