내가 독서 목록 앱을 작성한다고 가정 해 보겠습니다. 각 읽기 목록에는 이름과 책으로 다시 링크되는 여러 개의 ReadingListBook 객체가 있습니다. 또한이 독서 목록에 대한 액세스 권한을 부여받은 사용자가 많다고 가정 해보십시오. 각 사용자는 책을 읽은 후 책에 1-10 점을 부여합니다. 등급에 대한Django 모델 formsets- 기존 및 미리 채워진 "새로운"항목을 혼합하여 작성하는 방법
#models.py
class Book(models.Model):
name = models.CharField(max_length=255)
class ReadingList(models.Model):
name = models.CharField(max_length=255)
class ReadingListBook(models.Model):
reading_list = models.ForeignKey('ReadingList')
book = models.ForeignKey('Book')
class ReadingListBookUserRating(models.Model):
reading_list_book = models.ForeignKey('ReadingListBook')
user = models.ForeignKey(User)
rating = models.IntegerField() #rating of 1-10
그리고 다음 ModelForm : 다음과 같은 모델을 참조
#forms.py
class RLBRatingForm(forms.ModelForm):
class Meta:
model=ReadingListBookUserRating
fields = ['reading_list_book', 'rating']
를 주어진 시간에, 사용자가 일부에 대한 평가, 모든, 또는 책의 없음을 생성 한 주어진 독서 목록.
내 목표는 여러 RLBRatingForms - 하나의 ReadingList에 잠재적으로 등급이 책에 대한 formset을 생성하는 것입니다. 사용자가 평가 한 도서의 경우 기존 평점이 미리 채워집니다. 평가하지 않은 책은 입력란이 비어있게됩니다. 나는 기존 등급에 대한 formset을 작성하는 방법을 알고 있지만 아직 등급이 매겨지지 않은 책에 대해서는 양식을 추가하는 방법을 알지 못합니다.
예 : "도서 A", "도서 B"및 "도서 C"의 도서가 3 개 있고 사용자가 도서 A만을 평가 한 경우 양식 세트를 다음과 같이 표시합니다.
Book A: <Users Rating>
Book B: <BLANK>
Book C: <BLANK>
참고 : 등급이 지정되지 않은 책에는 데이터베이스 항목이 필요하지 않습니다. 생각?