간단합니다 - 질문에 대한 답변이있는 경우 질문에 대답 한 사람을 설정하고 싶습니다. 누군가 질문에 답을 얻는다면 양식 값을 설정하는 방법을 가르쳐 주시겠습니까? 나는 이것을 초기 값으로 설정할 수도 있지만 어떤 레코드가 응답되었는지 선택적으로 결정해야한다는 것을 알고있다. 이것은 더 단순 해 보였지만 이것을 이해하기 위해 머리카락을 잡아 당겨보고 있습니다. 누군가 나를 도울 수 있습니까?formset.save()의 formset에 외래 키 설정
모델은
class ProjectQuestion(models.Model):
question = models.CharField(max_length=255, editable=True)
answer_type = models.CharField(max_length=50, choices=VALUE_TYPE_CHOICES, editable=True)
answer = models.CharField(max_length=255, null=True, blank=True)
answer_comment = models.TextField(blank = True, null = True)
answered_by = models.ForeignKey(Employee, related_name="answered_by_test", null=True, blank=True)
answer_date = models.DateTimeField(auto_now = True, null=True)
objects = models.Manager()
def __unicode__(self):
return u'%s' % (self.question)
간단하다 그리고 나타내는보기도 간단하다.
commit
의 값에 따라 저장 여부, 인스턴스 객체를 반환
form.save
-
# views.py
if request.method == "POST":
print request.POST
print request.user
formset = QuestionFormSet(data=request.POST, files=request.FILES,
queryset=ProjectQuestion.objects.filter(id__lt=shortname))
print formset.forms
if formset.is_valid():
person = Employee.objects.get(name__iexact = request.user.get_full_name())
for i in range(0, formset.total_form_count()):
form = formset.forms[i]
if form.cleaned_data['answer']:
# THIS DOESN'T WORK... PLEASE FIX..
form.save(commit=False)
form.answered_by = person
form.save()
else:
active_section = ProjectQuestion.objects.filter(id__lt=shortname)