Django сохранить сгенерированную форму из БД - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть модель курса и курс состоит из нескольких файлов (хранится только ссылка на файл, файл не загружен на сервер).Количество файлов неизвестно, пользователь может добавлять новые ссылки на файл с помощью 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?

1 Ответ

1 голос
/ 03 апреля 2012

Добавить дополнительную модель:

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...