多対多のオブジェクトを追加しようとしていますが、request.userではなくユーザーがいて、情報がフォームからのものであるために取得できないため、問題が発生します。
私のコード(ビュー内):
editedcourse = Course.objects.get(id=Course_id)
# Use the model ChangeCourseOwnerForm.
form = ChangeCourseOwnerForm(instance=editedcourse)
# Test if its a POST request.
if request.method == 'POST':
# Assign to form all fields of the POST request.
form = ChangeCourseOwnerForm(request.POST, instance=editedcourse)
if form.is_valid():
# Save the course.
obj = form.save()
newusername = form['owner'] # Return an User
newusername.userprofile.courses_list.add(editecourse)
フォームに「userprofile」がないため、問題は最後の2行にあります...他のすべてのコードは理解のためのものですが、機能します。
フォームのモデル:
class ChangeCourseOwnerForm(forms.ModelForm):
class Meta:
model = Course
fields = ('owner',)
コースのモデル(私は英語ではありませんが、世界のコースは単数で大丈夫ですか?):
class Course(models.Model):
name = models.CharField(max_length=30)
description = models.TextField(max_length=30)
owner = models.ForeignKey(User, limit_choices_to={'is_staff': True})
years = models.CharField(max_length=11, choices=YEARS_CHOICES,
default='%d - %d' % (date.year, date.year + 1))
# In Admin panel : object = username
def __unicode__(self):
return self.name
あなたの助けに感謝します、私を愚かにする何時間もの仕事-D