0
我有一個表格ReviewForm
,它擴展ModelForm
。 ReviewForm
的模型是Review
,它具有以下字段:Django模型表單設置了外鍵下拉的可能值
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
class ReviewForm(ModelForm):
rating = CharField(widget=TextInput(attrs={'type': 'number','value': 5, 'min': 0, 'max': 5}))
class Meta:
model = Review
fields = ['message', 'rating', 'prof', 'course', 'user']
我試圖渲染它之前的初始值傳遞到表單。這是我對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
,並以表單顯示queryset。但是,Django似乎並不接受它。
我不知道如何編碼此功能。設置prof
和user
的初始值可以工作,因爲它選擇初始值。我確信獲得教授課程的代碼:course = prof.course_set.all()
正常工作,我已經在shell中測試過它。所以我需要做的是根據queryset輸入設置表格的課程的值可能的值。
喲意思是「Django似乎不接受它」。您是否期望被渲染爲下拉菜單但它不是? –