У меня есть userprofile, в котором записано имя пользователя и группа, в которую назначен пользователь.Я хочу, чтобы загруженные файлы были сохранены в папке с именем группы.Папки уже выходят из корня носителя, файлы должны быть направлены в эти папки
Я попытался добавить путь к каталогу пользователя к моделям, это не решило мою проблему
models.py
class uploadmeta(models.Model):
path = models.ForeignKey(Metadataform, verbose_name="ID", on_delete=models.PROTECT)
doc = models.FileField(upload_to='', verbose_name="Dataset")
def get_absolute_url(self):
return reverse('file_list', kwargs={'pk': self.pk})
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
Group= models.CharField(max_length=500, choices=Group_choices, default='Please Select')
def __str__(self):
return self.user.username
view.py
def uploaddata(request):
if request.user.is_authenticated:
if request.method == 'POST':
form = uploadmetaform(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('file_list')
else:
form = uploadmetaform()
return render(request, 'uploaddata.html', {
'form': form
})
else:
return render(request, 'home.html')
forms.py
class uploadmetaform(forms.ModelForm):
count = Metadataform.objects.all().latest('id').id #To know the id of latest object
data = Metadataform.objects.all().filter(id=count) #return the queryset with only latest object
path = forms.ModelChoiceField(queryset=data)
def __init__(self, *args, **kwargs):
super(uploadmetaform, self).__init__(*args, **kwargs)
count = Metadataform.objects.all().latest('id').id
data = Metadataform.objects.all().filter(id=count)
self.fields['path'] = forms.ModelChoiceField(queryset=data)
class Meta:
model = uploadmeta
fields = ['path', 'user_profile','tar_gif',]