假设我正在构建一个阅读列表应用程序。每个阅读列表都有一个名称,以及许多链接回一本书的ReadingListBook对象。另外,假设有许多用户被授予访问此阅读列表的权限。每位用户在读完这本书后,都要给这本书打1-10分。请参见以下模型:
#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
以及以下评级模型:
#forms.py
class RLBRatingForm(forms.ModelForm):
class Meta:
model=ReadingListBookUserRating
fields = ['reading_list_book', 'rating']
在任何给定的时间,用户可能已经为给定阅读列表中的一些、所有或没有的书籍创建了分级。你知道吗
我的目标是生成一个由多个RLBRatingForms组成的表单集-在ReadingList中为每一本可能评级的书生成一个表单集。对于用户已评级的任何书籍,其现有评级将预先填充。对于他们没有评分的任何书籍,输入字段将为空。我知道如何为现有的评分创建一个表单集,但我不确定如何为尚未评分的书籍添加表单。你知道吗
例如-如果阅读列表中有3本书,“Book a”、“Book B”和“Book C”,并且用户只对Book a进行了评级,则我希望我的表单集如下所示:
Book A: <Users Rating>
Book B: <BLANK>
Book C: <BLANK>
注意:未评级的书籍必须没有数据库条目。思想?你知道吗
如果我理解这个问题,我认为您可以通过使用Django模板的特性和编写自定义过滤器来解决这个问题。你知道吗
例如:
然后在模板中:
下面是关于writing custom filters的更多信息。我希望我没有过于简单化!你知道吗
相关问题 更多 >
编程相关推荐