Reputation: 2029
How to assign a file to the FileField in Django?
I try:
from django.core.files import File
...
...
att_path = os.path.join(detach_dir, filename)
if not os.path.isfile(att_path):
fp = open(att_path, 'wb')
djangofile = File(fp)
fp.write(part.get_payload(decode=True))
user = User.objects.get(id=1)
files = File.objects.create(src=djangofile, user=user)
fp.close()
but I have this error:
AttributeError: type object 'File' has no attribute 'objects'
models.py:
class File(models.Model):
user = models.ForeignKey(User)
src = models.FileField(upload_to="src")
Upvotes: 0
Views: 768
Reputation: 6255
Change
class File(models.Model):
user = models.ForeignKey(User)
src = models.FileField(upload_to="src")
to:
class UserFile(models.Model): # for example
user = models.ForeignKey(User)
src = models.FileField(upload_to="src")
and then create it like this:
files = UserFile.objects.create(src=djangofile, user=user)
from django.core.files import File
is conflicting with from yourapp.models import File
One example on using FileFields
.
Upvotes: 1