Django не может сохранить родительский идентификатор дочерних объектов
Я пытаюсь сохранить родительский идентификатор при сохранении формы, но не понимаю, где я делаю ошибку. Я использую <input type="hidden" name="parent" id={{i.sno}}>
для сохранения идентификатора родителя, и я могу видеть номер идентификатора, если я просматриваю html из браузера.
models.py
class Contact(MPTTModel):
user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True,related_name='contact_user')
parent =TreeForeignKey('self', on_delete=models.CASCADE,
null=True, blank=True, related_name='contact_parent')
sno = models.AutoField(primary_key=True,)
#my others fields....
forms.py
class TicketForm(forms.ModelForm):
class Meta:
model = Contact
fields = ['message','parent','sno','existing_customer','technical_service']
views.py
def SupportPageView(request):
if request.method == "POST":
support_form = TicketForm(request.POST or None)
if support_form.is_valid():
isinstance = support_form.save(commit=False)
isinstance.user = request.user
isinstance.name = request.user.first_name
isinstance.email = request.user.email
isinstance.save()
name = request.user.first_name
messages.add_message(request, messages.INFO, f'{name} Thanks for your message. We will get back to you very soon')
return redirect('contact:support-ticket')
else:
support_form = TicketForm()
user = request.user
support_object = Contact.objects.filter(user=user)
context = {"support_form":support_form,'support_object':support_object}
return render(request,"contact/support.html",context)
HTML
{%for i in support_object%}
<form method="POST">
{%csrf_token%}
<textarea name="message" class="form-control" style="height: 150px;"></textarea><br>
<input type="hidden" name="parent" id={{i.sno}}>
<button type="submit" class="btn btn-info">Submit</button>
</form>
{%endfor%}
мои формы сохраняются как родительские, но я хочу, чтобы они сохранялись как дочерние.
Я делал ошибку в html полях
Я использовал <input type="hidden" name="parent" id={{i.sno}}>
, но должно быть <input type="hidden" name="parent" id="parent_id" value="{{node.sno}}">
. Мне не хватало значения в моих html-полях