attachment.py 962 B

123456789101112131415161718192021222324252627282930313233343536
  1. from django.conf import settings
  2. from django.db import models
  3. from django.utils import timezone
  4. def clean_upload_to(instance, filename):
  5. instance.filename = filename
  6. class Attachment(models.Model):
  7. uuid = models.CharField(max_length=64, db_index=True)
  8. type = models.ForeignKey('AttachmentType')
  9. post = models.ForeignKey(
  10. 'Post',
  11. blank=True,
  12. null=True,
  13. on_delete=models.SET_NULL
  14. )
  15. uploaded_on = models.DateTimeField(default=timezone.now)
  16. uploader = models.ForeignKey(
  17. settings.AUTH_USER_MODEL,
  18. blank=True,
  19. null=True,
  20. on_delete=models.SET_NULL
  21. )
  22. uploader_name = models.CharField(max_length=255)
  23. uploader_slug = models.CharField(max_length=255)
  24. uploader_ip = models.GenericIPAddressField()
  25. filename = models.CharField(max_length=255)
  26. file = models.FileField(upload_to=clean_upload_to)
  27. downloads = models.PositiveIntegerField(default=0)