ユーザーは、登録したプロファイルを作成して編集できるようにしようとしています。私はモデルフォームを使用しています。私がする必要があるのは、雇用者モデルのフィールドを現在のユーザーで埋めることです。ここで既存のプロファイルを更新する方法Djangoモデルのフォーム
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'はProfile用のModelFormですか?フォームクラスを投稿してください。 – Brandon
Okモデルフォームを追加しました –
モデルを更新するときは、通常、モデルフォームをモデルのインスタンスに渡して、モデルの既存のデータでフォームをあらかじめ入力します。それはあなたがする必要があるのですか?それをやりたくないのですか?代わりに、現在のユーザーをフォームに挿入する必要がありますか? – Brandon