Я пытаюсь разрешить пользователям создавать и редактировать свои профили после их регистрации. Я использую модельную форму. Мне нужно, чтобы поле модели работодателя заполнялось текущим пользователем.Как обновить существующий профиль Django Model Form
Вот мое мнение:
def update_profile(request, username):
if request.method == 'POST':
edit_profile_form=EditProfileForm(request.POST)
if edit_profile_form.is_valid():
editprofile = edit_profile_form.save(commit=False)
editprofile.employer = request.user.get_profile()
editprofile.save()
edit_profile_form = EditProfileForm()
context = {'edit_profile_form':edit_profile_form,}
return render(request, 'pandaboard/editprofile.html', context)
Вот моя модель:
class Profile(models.Model):
employer = models.ForeignKey(User)
company_name = models.CharField(max_length=100)
company_description = models.TextField()
company_website = models.URLField(max_length=200, blank=True)
contact_email = models.EmailField(max_length=100)
contact_name = models.CharField(max_length=100)
def __unicode__(self):
return self.company_name
Вот моя модель Форма
from django.forms import ModelForm
from pandaboard.models import JobPost, Profile
from django.contrib.auth.models import User
class EditProfileForm(ModelForm):
class Meta:
model = Profile
fields = ['company_name','company_description','company_website','contact_email','contact_name']
Является ли 'EditProfileForm' ModelForm для профиля? Отправьте свой класс формы. – Brandon
ОК Я добавил свою модельную форму –
При обновлении модели, как правило, вы передадите свою модель форме экземпляра модели, чтобы предварительно заполнить форму существующими данными из модели. Это то, что вам нужно делать? или вы не хотите этого делать, и вместо этого нужно вводить текущего пользователя в форму? – Brandon