rh0*_*ium 3 django django-models django-forms
这很简单 - 如果问题得到解答,我想要做的就是设置谁回答问题.如果问题得到解答,有人可以告诉我如何设置表单值.我知道我也可以将其设置为初始值,但我必须有选择地确定哪些记录得到了回答.这看起来更简单,但是我把头发拉出来试图解决这个问题.有人可以帮我吗.
这个模型很简单
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)
Run Code Online (Sandbox Code Playgroud)
代表视图也很简单.
# 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)
Run Code Online (Sandbox Code Playgroud)
不是应该的
if form.cleaned_data['answer']:
# THIS DOESN'T WORK... PLEASE FIX..
question = form.save(commit=False)
question.answered_by = person
question.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2519 次 |
| 最近记录: |