0

私はコースのモデルを持っており、コースはいくつかのファイルで構成されています(ファイルへのリンクのみが保存され、ファイルはサーバーにアップロードされません)。ファイルの数は不明です。ユーザーはJSを使用してファイルに新しいリンクを追加できます。そして、このリンクは次の形式で編集できます。

次の方法で新しいコースリンクを受け取り、追加します。

links  = request.POST.getlist('course-dl-links') 

for link in links:
    CourseFile.objects.create(
        link   = link,
        course = course
    )

そして、編集フォームを動的に生成できます。

class CourseForm(forms.Form):
    # fields...

    def __init__(self, data = None, *args, **kwargs):
        super(CourseForm, self).__init__(data, *args, **kwargs)
        files = CourseFile.objects.filter(course__id=data.course_id).all()

        for course_file in files:
            self.fields['course-dl-links-%d' % (course_file.id, )] = forms.CharField(initial=course_file.path)

しかし、このフォームでフォームを保存することは困難です。Djangoの方法でそれを行う方法は?

4

1 に答える 1

1

モデルを追加します。

class CourseLink(models.Model):
    course = models.ForeignKey(Course)
    link = models.CharField(max_length=255)

# Add a course link
CourseLink.objects.create(course=course, link='http://www.google.nl')

# Add another course link
CourseLink.objects.create(course=course, link='http://www.stackoverflow.com')
于 2012-04-03T15:02:06.063 に答える