Hi
So I made a method that renders a view. This method also passes some values to this view. Originally I passed errors to the view using a dictionary, but I couldn't find a way of checking if certain keys were in the dictionary, it always came back as false. I also tried passing the keys in a seperate list just to be able to check, but I also couldn't check this, and I don't know how to access these values since it always comes back as False.
Here is my method (I left out the method header):
def portal_my_contacts_read(self, contact, errors={}, testlist=[]): | |
"""Read a contact form.""" | |
values = self._prepare_portal_layout_values() | |
values.update({ | |
"contact": contact, | |
"fields": self._contacts_fields(), | |
"errors": errors, | |
"testlist": testlist | |
}) | |
return request.render( | |
"website_portal_contact.contacts_followup", values) |
And here is my xml form (not the whole template):
<form id="portal_contact" | |
t-attf-action="/my/contacts/{{'{}/update'.format(slug(contact))}}" | |
method="post" | |
enctype="multipart/form-data" | |
class="container form-horizontal"> | |
<input type="hidden" | |
name="csrf_token" | |
t-att-value="request.csrf_token()"/> | |
<div t-attf-class="form-group col-xd-6"> | |
<label class="col-form-label" for="name">Name</label> | |
<input type="text" name="name" t-attf-class="form-control" t-att-value="contact.name"/> | |
</div> | |
<div t-attf-class="form-group col-xd-6"> | |
<label class="col-form-label" for="phone">Phone</label> | |
<input type="tel" name="phone" t-attf-class="form-control" t-att-value="contact.phone"/> | |
</div> | |
<t t-if="'error_mobile' in testlist"> | |
<div t-attf-class="form-group col-xd-6"> | |
<label class="col-form-label" for="mobile">Mobile</label> | |
<input type="tel" name="mobile" t-attf-class="form-control" t-att-value="contact.mobile"/> | |
</div> | |
<p>Error</p> | |
</t> | |
<t t-if="not 'error_mobile' in testlist"> | |
<div t-attf-class="form-group col-xd-6"> | |
<label class="col-form-label" for="mobile">Mobile</label> | |
<input type="tel" name="mobile" t-attf-class="form-control" t-att-value="contact.mobile"/> | |
<p>No error</p> | |
</div> | |
</t> | |
<t t-if="'error_email' in errors.keys()"> | |
<div t-attf-class="form-group #{errors['error_email'] and 'o_has_error' or ''} col-xd-6"> | |
<label class="col-form-label" for="email">E-mail</label> | |
<input type="email" name="email" t-attf-class="form-control is-invalid}" t-att-value="contact.email"/> | |
</div> | |
</t> | |
<t t-if="not 'error_email' in errors.keys()"> | |
<div t-attf-class="form-group col-xd-6"> | |
<label class="col-form-label" for="email">E-mail</label> | |
<input type="email" name="email" t-attf-class="form-control}" t-att-value="contact.email"/> | |
<p>No Error</p> | |
</div> | |
</t> | |
<section class="row o_submit"> | |
<div class="col-md-12 text-center"> | |
<button type="submit" class="btn btn-primary"> | |
<div class="fa fa-cloud-upload"/> | |
Save | |
</button> | |
</div> | |
</section> | |
</form> | |
<t name="placeholder4"/> | |
</div> | |
</t> | |
</template> |
The 'error-mobile' is using the list to check and 'error_email' is checking the dictionary, but both of them always come back as negative, even when there are errors being passed to the view. There's probably something I've overlooked but I can't seem to find it.
Any help is greatly appreciated.