カスタムの clean メソッドに「外部」パラメータを渡すのに苦労しています。
識別子を除いて、フォームを使用してすべてを渡します。識別子は URL から取得されます。フォームに加えて識別子を使用する必要があります。
これが私のコードです:
class Entry(models.Model):
identifier = models.ForeignKey(Offer)
name = models.CharField(max_length=64)
description = models.TextField()
class EntryForm(ModelForm):
class Meta:
model = Entry
def clean(self):
try:
Entry.objects.get(
identifier=THIS IS WHAT I NEED TO FILL,
description=self.cleaned_data['description'],
name=self.cleaned_data['name'])
raise forms.ValidationError(_(u'We already have an entry with the same credentials!'))
except Entry.DoesNotExist:
pass
return self.cleaned_data
見る:
def addEntry(request, identifier):
entry = get_object_or_404(Entry, pk=identifier)
if request.method == "POST":
entryForm = EntryForm(data=request.POST)
if entryForm.is_valid():
entry = entryForm.save(commit=False)
entry.identifier = identifier
entry.save()
else:
entryForm = EntryForm(data=request.POST)
...
そのため、識別子を clean メソッドに追加できる部分がありません。
高度なヘルプをありがとう!