Я пытаюсь создать форму на одной странице, которая использует несколько моделей. Модели ссылаются друг на друга. У меня возникли проблемы с получением формы для проверки, потому что я не могу понять, как получить идентификатор двух моделей, используемых в форме, в форму для проверки. Я использовал скрытый ключ в шаблоне, но я не могу понять, как заставить его работать в воззренияхdjango: Как сделать одну форму из нескольких моделей, содержащих дополнительные ключи
Мой код ниже:
просмотров:
def the_view(request, a_id,):
if request.method == 'POST':
b_form= BForm(request.POST)
c_form =CForm(request.POST)
print "post"
if b_form.is_valid() and c_form.is_valid():
print "valid"
b_form.save()
c_form.save()
return HttpResponseRedirect(reverse('myproj.pro.views.this_page'))
else:
b_form= BForm()
c_form = CForm()
b_ide = B.objects.get(pk=request.b_id)
id_of_a = A.objects.get(pk=a_id)
return render_to_response('myproj/a/c.html',
{'b_form':b_form,
'c_form':c_form,
'id_of_a':id_of_a,
'b_id':b_ide })
модели
class A(models.Model):
name = models.CharField(max_length=256, null=True, blank=True)
classe = models.CharField(max_length=256, null=True, blank=True)
def __str__(self):
return self.name
class B(models.Model):
aid = models.ForeignKey(A, null=True, blank=True)
number = models.IntegerField(max_length=1000)
other_number = models.IntegerField(max_length=1000)
class C(models.Model):
bid = models.ForeignKey(B, null=False, blank=False)
field_name = models.CharField(max_length=15)
field_value = models.CharField(max_length=256, null=True, blank=True)
бланки
from mappamundi.mappa.models import A, B, C
class BForm(forms.ModelForm):
class Meta:
model = B
exclude = ('aid',)
class CForm(forms.ModelForm):
class Meta:
model = C
exclude = ('bid',)
B имеет внешний ключ ссылку на A, C имеет внешний ключ ссылку на B. Поскольку модели связаны, я хочу иметь формы для них на одной странице, 1 кнопку отправки. Так как мне нужно заполнить поля для форм для B и C & Я не хочу выбирать идентификатор B из выпадающего списка, мне нужно как-то получить идентификатор формы B в форму, чтобы он подтвердил. У меня есть скрытое поле в шаблоне, мне просто нужно понять, как это сделать в представлениях
Возможно, вы, возможно, объясните немного больше того, что именно вы пытаетесь достичь, какова намерение иметь две формы на странице? Вы хотите установить поля ForeignKey в соответствии со страницей, которую просматривает пользователь? –