TypeError at /dashboard/profiles/create/ path_and_rename() missing 2 required positional arguments: 'instance' и 'filename'

Я пытаюсь сохранить информацию из формы, созданной из модели Django. У меня действительно мало опыта, так как это мой второй проект.

Вот мое мнение

def profile_create_view(request):
form = ProfileCreateForm(request.POST or None)
if form.is_valid():
    form.save
    form = ProfileCreateForm()
context = {
    'form':form
}
return render(request, 'users/profile', context)

Моя анкета здесь

class ProfileCreateForm(forms.ModelForm):
class Meta:
    model = Profile
    fields = [
        'avatar',
        'user_type',
        'first_name',
        'last_name',
        'gender',
        'email',
        'phonenumber',
        'birth_date',]

и затем моя модель здесь

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.ImageField(upload_to = '', default = path_and_rename, blank=True)
provider = 'provider'
requester = 'requester'
user_types = [
    (provider, 'provider'),
    (requester, 'requester'),
   ]
user_type = models.CharField(max_length=155, choices=user_types, default=requester)
first_name = models.CharField(max_length=255, default='')
last_name = models.CharField(max_length=255, default='')
GENDER_MALE = 'Male'
GENDER_FEMALE = 'Female'
OTHER = 'Other'

GENDER_CHOICES = [
    (GENDER_MALE, 'Male'),
    (GENDER_FEMALE, 'Female'),
    (OTHER, 'Other'),
   ]
gender = models.CharField(max_length=15, choices=GENDER_CHOICES, blank=True)
email = models.EmailField(default='none@email.com')
phonenumber = models.CharField(max_length=15, default='')
birth_date = models.DateField(default='1975-12-12')

В функции просмотра происходят странные вещи, вам придется перестроить ее вот так .

def profile_create_view(request):
    if request.method == "POST":
        form = ProfileCreateForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('/')        
    else:
        form = form()
    return render(request, 'manage_authors.html', {'form': form})

Простите, я забыл, что решил эту проблему, изменив модель для аватара с 'avatar = models.ImageField(upload_to = '', default = path_and_rename, blank=True)'' на avatar = models.ImageField(upload_to = 'uploads/', default='uploads/default.jpg')

Вернуться на верх