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')