Django 从clean(self)方法传递到ModelForm的访问实例

Django 从clean(self)方法传递到ModelForm的访问实例,django,django-models,django-forms,Django,Django Models,Django Forms,登录用户希望与其他用户配对。它们将显示一个带有下拉列表的表单。如果他们选择自己,则引发验证错误 问题:在PairForm的clean(self)方法中,我如何访问在我给PairForm的配对上设置的用户 附加问题:如果是if(first是second)而不是if(first==second)?在模型中,可以通过self.instance访问实例 self.instance.first==self.cleaned\u data.get(“second”) Oops,self.instance.fi

登录用户希望与其他用户配对。它们将显示一个带有下拉列表的表单。如果他们选择自己,则引发验证错误

问题:在PairForm的
clean(self)
方法中,我如何访问在我给PairForm的配对上设置的用户


附加问题:如果是
if(first是second)
而不是
if(first==second)

模型中,可以通过
self.instance
访问实例

self.instance.first==self.cleaned\u data.get(“second”)


Oops,
self.instance.first
在重新启动开发服务器后似乎可以工作。谢谢我不知道你为什么会得到一个
DoesNotExist
:这是最奇怪的部分——你应该把你对那个错误的全部回溯发布出来。
class Pair(models.Model):
    first = models.ForeignKey(User, related_name='pair_first')
    second = models.ForeignKey(User, related_name='pair_second')

class PairForm(forms.ModelForm):
    class Meta:
        model = Pair
        fields = ('second',)

    def clean(self):
        first = None # how can I get first?
        second = self.cleaned_data.get("second")

        if (first == second):
            raise ValidationError("You can't pair with yourself, silly.")

def pair_create(request):
    if request.method == 'POST':
        pair = Pair()
        pair.first = request.user
        form = PairForm(instance=pair, data=request.POST)
        if form.is_valid():
            form.save();
            return HttpResponseRedirect(reverse('somewhere'))
    else:
        form = PairForm()

    return render_to_response('something.html', {
        'form': form,
    }, context_instance=RequestContext(request))