We have posted a similar question on the following site.
teratail
Qiita
I would like to create an inline form using django-extra-views, but when I try to display the form, the inline form is shown as follows:
django 3.2
django-extra-views 0.7.1 (current state of affairs)
I read the djnago-extra-views documentation and write the code exactly as it says.
Also, when I looked into it, I thought it was related to a form set, but I didn't have much information to solve it.
models.py
class Property (models.Model):
customer_id=models.ForeignKey (Customer, on_delete=models.CASCADE, null=True)
name=models.CharField(max_length=32, blank=True)
address=models.CharField('Address', max_length=32, blank=True)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
def__str__(self):
return self.name
default_absolute_url(self):
return reverse("properties:properties")
class Estimate (models.Model):
estimate_id=models.CharField (blank=True, max_length=255)
property_id=models.ForeignKey(Property, on_delete=models.CASCADE, related_name="property")
ref_customer_id=models.ForeignKey (Customer, on_delete=models.CASCADE, null=True)
customer_name=models.CharField('CustomerName', max_length=255)
customer_email=models.EmailField('Customer Email Address', max_length=255, blank=True)
customer_tel=models.CharField ('Customer Phone Number', max_length=11, blank=True)
customer_postal_code=models.CharField('Customer Zip Code', max_length=1024, blank=True)
customer_address=models.CharField('Customer Address', blank=True, max_length=1024)
ref_property_id=models.IntegerField('Property ID', blank=True, default=0)
property_address=models.CharField('Property Address', max_length=1024, blank=True)
version=models.CharField("Version", max_length=255, blank=True)
estimated_amount=models.IntegerField('Quote', default=0')
estimated_pdf=models.CharField('Quote', max_length=255, blank=True)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
def__str__(self):
return self.customer_name
views.py
from extra_views import CreateWithInlinesView, InlineFormSetFactory
classEstimateInline(InlineFormSetFactory):
model=Estimate
fields=["estimate_id" ]
classCreatePropertyView (CreateWithInlinesView):
model=Property
inlines= [EstimateInline]
fields=["customer_id", "name", "address" ]
template_name = 'tect/properties/estimates/create.html'
def get_success_url(self):
return self.object.get_absolute_url()
create.html
<form action="method="post">{%csrf_token%}
{{ form.as_p}}
{% for formset in inlines%}
{{ formset}}
{% endfor%}
<div class="d-grid col-3mx-autopt-5">
<button class="btn btn-outline-dark shadow" type="submit"">Save</button>
</div>
</div>
</form>
It's solved.It seems that the fix was not reflected due to the problem with the browser cache.After a while, I tried to display it again and it was displayed successfully.
© 2024 OneMinuteCode. All rights reserved.