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))
Oturum açmış bir kullanıcı başka bir kullanıcı ile eşleştirmek istiyor. Bir açılır menüden bir form gösterilir. Kendileri seçtiyse, bir doğrulama hatası oluşturun.Erişim örneği, ModelForm'a temiz (kendi) yönteminden geçirildi
Soru: PairForm'ın clean(self)
yönteminde, DoubleForm'a verdiğim Pair'da ayarladığım kullanıcıya nasıl erişebilirim?
Bonus soru: if (first == second)
yerine if (first is second)
olmalıdır? Bir ModelForm
yılında
Sağ üzerinden erişilebilir, bunu başlangıçta çalıştı ve bir DoesNotExist hata var. – epalm
Oops, 'self.instance.first', dev sunucusunu yeniden başlattıktan sonra çalışıyor gibi görünüyor. Teşekkürler! – epalm
Neden bir "DoesNotExist" aldığına dair hiçbir fikrim yok: Bu en çok merak edilen bölüm - tüm izinizi bu hataya göndermelisiniz. –