Django - Как загрузить файл в папку в файловом поле - PullRequest
0 голосов
/ 08 октября 2019

Я сохраняю форму с файловым полем и говорю upload_to в user_path из userprofile. Я не знаю, как написать представление для формы

models.py


def nice_user_folder_upload(instance, filename):
    extension = filename.split(".")[-1]
    return (
        f"{instance.UserProfile.Assigned_Group}/{filename}"
    )

class Metadataform(models.Model):


    id = models.AutoField(primary_key=True)
    Authors_Name = models.CharField(max_length=500, blank=True, null=True)
    Document = models.FileField(upload_to=nice_user_folder_upload)

class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

    Assigned_Group= models.CharField(max_length=500, choices=Group_choices, default='Please Select')

    def __str__(self):
        return self.user.username

views.py

def Metadata_submission(request):


        Authors_Name = request.POST["Authors_Name"]
          if request.method == 'POST':
                form = Fileuploadform(request.POST, request.FILES)
                if form.is_valid():
                        form.save()
                   return render(request, "home.html")

        else:
                form = Fileuploadform()
# forms.py                              

class Fileuploadform(forms.ModelForm):
    class Meta:
        model = Metadataform
        fields = ['Authors_Name','Affliations','Dataset_Creation_Date','Publication_Ref','Embargo_Time','DataGeneration_Type','Methods','Instruments','Software','Models','Device','Configuration','Precursor','Data_Type','Variables','Error_Estimation','Document']


class UserProfileForm(forms.ModelForm):
    class Meta:
        model = UserProfile
        fields = ('Assigned_Group',)

яполучение AttributeError в / Metadata_submission / объект 'Metadataform' не имеет атрибута 'UserProfile'

1 Ответ

0 голосов
/ 08 октября 2019

Проблема здесь, я думаю, в том, что у вас так много полей, которые могут быть не связаны с вашей Metadataform моделью (возможно, вы не опубликовали ее полностью). Я думаю, вам следует прочитать doc . Судя по всему, вы пытаетесь добавить UserProfile где-то в вашей форме, что вызывает ошибку.

...