我试图创建一个验证规则,如果(里程碑)对象target_date大于项目target_date,则传递错误。问题是没有提出任何错误。如何根据FK字段验证Django表单字段
对于纯朴的缘故,
models.py
class Project(models.Model):
target_date = models.DateField()
class Milestone(models.Model):
project = models.ForeignKey(Project)
target_date = models.DateField()
Forms.py
class MilestoneAddForm(forms.ModelForm):
class Meta:
model = Milestone
def clean_target_date(self):
tdate = self.cleaned_data['target_date']
if tdate > self.instance.project.target_date
raise forms.ValidationError("Target Date is outside or project target date.")
return tdate
views.py(丢弃无关的代码)
def MilestoneManage(request, project_id):
qs = Project.objects.none()
if request.method == 'POST':
formset = MilestoneFormSet(request.POST, prefix='new')
if formset.is_valid():
newMiles = formset.save(commit=False)
for new in newMiles:
new.project_id = project.id
new.save()
return HttpResponseRedirect(reverse('project.views.detail', args=(project.id,)))
else:
formset = MilestoneFormSet2(queryset=qs, prefix='new')
return render_to_response('project/manageMilestones.html', {
'formset': formset,
}, context_instance=RequestContext(request))
什么是确切的错误?并且请你能提供实际运行的代码(上面至少有两个语法错误)。 – 2010-10-28 21:51:34