Мне нужно установить значение моего раскрывающегося списка ForeignKey = в качестве параметра URL при отображении формы.Я могу успешно установить другие поля формы для этого значения, но не для ForeignKey.
Я пытаюсь инициализировать поле формы 'reference', которое является внешним ключом, используя значение reference_id, которое передается через URL,Я могу успешно присвоить это значение трем другим полям формы, но не 'reference'.
Models.py
class Manifests(models.Model):
reference = models.ForeignKey(Orders)
cases = models.IntegerField()
description = models.CharField(max_length=1000)
count = models.IntegerField()
def __str__(self):
return self.description
Forms.py
class CreateManifestForm(forms.ModelForm):
class Meta:
model = Manifests
fields = ('reference', 'cases', 'description', 'count')
Views.py
def add_manifest(request, reference_id):
if request.method == "POST":
form = CreateManifestForm(request.POST)
if form.is_valid():
instance = form.save(commit=False)
try:
order = Orders.objects.get(id=reference_id)
except Orders.DoesNotExist:
pass
instance.reference = order
instance.save()
return redirect('add_manifest', reference_id=reference_id)
#this is where my problem is
form = CreateManifestForm(initial={'reference': reference_id})
reference = request.POST.get('reference')
manifests = Manifests.objects.all().filter(reference=reference)
context = {
'form': form,
'reference_id': reference_id,
'manifests' : manifests,
}
return render(request, 'add_manifest.html', context)
И на всякий случай, если это необходимо:
urls.py
url(r'^add_manifest/(?P<reference_id>\d+)/$', add_manifest, name='add_manifest'),
Нет ошибок, но поле не устанавливаетсяк значению, переданному через URL.Как я уже сказал, если я попробую
form = CreateManifestForm(initial={'cases': reference_id})
, тогда поле падежей принимает это значение, так что я просто не уверен, как перемещаться в случае внешнего ключа