python - How do I combine two ModelForms in one view with the fields displayed in an arbitrary order? -
let's have next 2 django models.
class fruitbasket(models.model): apple = models.charfield() strawberry = models.charfield() class vegetablegarden(models.model): celery = models.charfield() turnip = models.charfield() if want create 1 view user create both fruitbasket , vegetablegarden in same form, can create 1 modelform each , pass them view so:
<form action="" method="post"> {% csrf_token %} {{ fruit_form.as_p }} {{ vegetable_form.as_p }} <input type="submit" value="submit" /> </form> this allow user come in apple, strawberry, celery, , turnip fields, in order.
what if, instead, wanted display fields in order turnip, strawberry, celery, , apple? want avoid writing whole new form class, since have duplicate of validation (clean functions). there way arbitrarily decide order of fields when combining 2 forms?
{{ form.as_p }} 1 of many ways display form. can output widget of each individual field using {{ form.name_of_field }} syntax:
<form action="" method="post"> {% csrf_token %} {{ vegetable_form.turnip }} {{ fruit_form.strawberry }} {{ vegetable_form.celery }} {{ fruit_form.apple }} <input type="submit" value="submit" /> </form> note won't display errors. individual error messages available under {{ form.name_of_field.errors }}, , can access forms error messages using {{ form.errors }}.
take @ customizing form template more info on subject.
python django forms
No comments:
Post a Comment