我有一个扩展ReviewForm
的形式。ReviewForm
的模型是Review
,它有以下字段:
class Review(models.Model):
message = models.TextField(max_length = 4000)
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(null = True)
rating = models.IntegerField(
default = 5,
validators = [MaxValueValidator(5), MinValueValidator(0)]
)
prof = models.ForeignKey(Prof, related_name = 'reviews')
course = models.ForeignKey(Course, related_name = 'reviews')
user = models.ForeignKey(User, related_name = 'reviews')
对于forms.py
我试图在呈现窗体之前将其初始值传递给它。这是我的views.py
的代码
def review(request, prof_id=None):
""" Review a prof """
# If there's an input prof, return review page for that prof
if prof_id:
user = User.objects.get(pk=request.user.id)
prof = prof_views.prof(prof_id)
course = prof.course_set.all()
data = {'user': user, 'prof': prof, 'course': course}
review_form = ReviewForm(initial=data)
return render(request, 'reviews/review_form.html', {'review_form': review_form})
review_form = ReviewForm()
return render(request, 'reviews/review_form.html', {'review_form': review_form})
已成功设置prof
和user
的初始值。我试图传入一个prof
的courses
,并让表单显示该查询集。然而,Django似乎并不接受。在
我不知道如何编写这个函数。设置prof
和user
的初始值是因为它选择了初始值。我确信获取教授课程的代码:course = prof.course_set.all()
工作正常,我已经在shell中测试过了。所以我需要做的是根据queryset输入设置表单的courses的可能值。在
感谢@solarismoke的链接!我用的是:
相关问题 更多 >
编程相关推荐