0

多対多のオブジェクトを追加しようとしていますが、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

4

1 に答える 1

0

それは大丈夫です、私はそれをしました:

        newowner = form['owner'].value()
        new = User.objects.get(id=newowner)
        addcourse = new.userprofile.courses_list.add(obj)
于 2012-07-16T08:40:32.270 に答える