<html><head></head><body><div style="color:#000; background-color:#fff; font-family:verdana, helvetica, sans-serif;font-size:16px"><div style="box-sizing: border-box; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; line-height: 22.4px;" id="yui_3_16_0_1_1446770599597_883103" class="">Hi,<br style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883105" class="">I'm using Flask Appbuilder which seems to provide it's own REST implemention instead of using Flask-Rest.</div><div style="box-sizing: border-box; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; line-height: 22.4px;" id="yui_3_16_0_1_1446770599597_883103" class="" dir="ltr">I have the following class. When I call it's view's api/read function I get the error "TypeError: TXABCD2015 is not JSON serializable". Note that TXABCD2015 is the value returned by the <strong style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883107" class="">repr</strong>() method of the related Event object. It throws this error on all objects related through foreign keys. I really would like the Event <strong style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883109" class="">repr</strong>() value to be included in the json if possible. I would appreciate any advice on what should I do to handle this.</div><div style="box-sizing: border-box; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; line-height: 22.4px;" id="yui_3_16_0_1_1446770599597_883111" class="">Thanks!</div><div class="" style="box-sizing: border-box; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; line-height: 22.4px; overflow: visible !important;" id="yui_3_16_0_1_1446770599597_883101" dir="ltr"><pre style="box-sizing: border-box; overflow: auto; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 11.9px; margin-top: 0px; margin-bottom: 0px; font-stretch: normal; line-height: 1.45; padding: 16px; border-radius: 3px; word-wrap: normal; word-break: normal; background-color: rgb(247, 247, 247);" id="yui_3_16_0_1_1446770599597_883100" class=""><span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883115">class</span> <span class="" style="box-sizing: border-box; color: rgb(121, 93, 163);" id="yui_3_16_0_1_1446770599597_883117">CarClass</span>(<span class="" style="box-sizing: border-box; color: rgb(121, 93, 163);" id="yui_3_16_0_1_1446770599597_883119">Model</span>,<span class="" style="box-sizing: border-box; color: rgb(121, 93, 163);" id="yui_3_16_0_1_1446770599597_883121">ModelEnhancer</span>):
    __tablename__ <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883123">=</span> <span class="" style="box-sizing: border-box; color: rgb(24, 54, 145);" id="yui_3_16_0_1_1446770599597_883125"><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883127">"</span>CarClass<span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883129">"</span></span>
    CarClassID <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883131">=</span> Column(Integer, <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883133">primary_key</span><span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883135">=</span><span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883137">True</span>)
    CarClassKey <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883139">=</span> Column(String(<span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883141">30</span>), <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883143">unique</span><span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883145">=</span><span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883147">True</span>, <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883149">nullable</span><span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883151">=</span><span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883153">False</span>)
    Marque <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883155">=</span> Column(String(<span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883157">30</span>), <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883159">nullable</span><span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883161">=</span><span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883163">False</span>)
    Title <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883165">=</span> Column(String(<span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883167">30</span>), <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883169">nullable</span><span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883171">=</span><span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883173">False</span>)
    Description <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883175">=</span> Column(Text(<span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883177">1000</span>), <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883179">nullable</span><span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883181">=</span><span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883183">False</span>)
    StartYear <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883185">=</span> Column(Integer, <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883187">nullable</span> <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883189">=</span> <span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883191">True</span>)
    EndYear <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883193">=</span> Column(Integer, <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883195">nullable</span> <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883197">=</span> <span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883199">True</span>)
    EventID <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883201">=</span> Column(Integer, ForeignKey(<span class="" style="box-sizing: border-box; color: rgb(24, 54, 145);" id="yui_3_16_0_1_1446770599597_883203"><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883205">'</span>event.EventID<span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883207">'</span></span>), <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883209">nullable</span><span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883211">=</span><span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883213">False</span>)
    Event <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883215">=</span> relationship(<span class="" style="box-sizing: border-box; color: rgb(24, 54, 145);" id="yui_3_16_0_1_1446770599597_883217"><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883219">'</span>Event<span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883221">'</span></span>)

    <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883223">def</span> <span class="" style="box-sizing: border-box; color: rgb(121, 93, 163);" id="yui_3_16_0_1_1446770599597_883225">setValues</span>(<span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883227">self</span>, <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883229">row</span>):
        <span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883231">self</span>.validationMessages <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883233">=</span> <span class="" style="box-sizing: border-box; color: rgb(24, 54, 145);" id="yui_3_16_0_1_1446770599597_883235"><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883237">"</span><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883239">"</span></span>
        <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883241">for</span> key, value <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883243">in</span> row.iteritems():
            <span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883245">setattr</span>(<span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883247">self</span>, key, value)

    <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883249">def</span> <span class="" style="box-sizing: border-box; color: rgb(121, 93, 163);" id="yui_3_16_0_1_1446770599597_883251">list_mapped_columns</span>(<span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883253">self</span>):
        list_obj_mapped_columns(<span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883255">self</span>)

    <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883257">def</span> <span class="" style="box-sizing: border-box; color: rgb(121, 93, 163);" id="yui_3_16_0_1_1446770599597_883259">isValid</span>(<span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883261">self</span>):
        validationMessage <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883263">=</span> <span class="" style="box-sizing: border-box; color: rgb(24, 54, 145);" id="yui_3_16_0_1_1446770599597_883265"><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883267">"</span><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883269">"</span></span>
        columns <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883271">=</span> <span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883273">self</span>.required_column_names
        <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883275">for</span> name <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883277">in</span> columns:
            <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883279">print</span> name
            <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883281">if</span> <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883283">not</span> <span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883285">getattr</span>(<span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883287">self</span>, name):
                <span class="" style="box-sizing: border-box; color: rgb(150, 152, 150);" id="yui_3_16_0_1_1446770599597_883289"># Add validation message</span>
                <span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883291">self</span>.validationMessages <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883293">=</span> <span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883295">self</span>.validationMessages <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883297">+</span> <span class="" style="box-sizing: border-box; color: rgb(24, 54, 145);" id="yui_3_16_0_1_1446770599597_883299"><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883301">"</span>, <span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883303">"</span></span> <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883305">+</span> name <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883307">+</span> <span class="" style="box-sizing: border-box; color: rgb(24, 54, 145);" id="yui_3_16_0_1_1446770599597_883309"><span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883311">"</span> can not be empty.<span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883313">"</span></span>
        <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883315">return</span> <span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883317">len</span>(<span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883319">self</span>.validationMessages) <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883321">==</span> <span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883323">0</span>

    <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883325">def</span> <span class="" style="box-sizing: border-box; color: rgb(121, 93, 163);" id="yui_3_16_0_1_1446770599597_883327"><span class="" style="box-sizing: border-box; color: rgb(0, 134, 179);" id="yui_3_16_0_1_1446770599597_883329">__repr__</span></span>(<span class="" style="box-sizing: border-box;" id="yui_3_16_0_1_1446770599597_883331">self</span>):
        <span class="" style="box-sizing: border-box; color: rgb(167, 29, 93);" id="yui_3_16_0_1_1446770599597_883333">return</span> <span class="" style="box-sizing: border-box; color: rgb(237, 106, 67);" id="yui_3_16_0_1_1446770599597_883335">self</span>.CarClassKey</pre></div><div></div><div id="yui_3_16_0_1_1446770599597_883092"> </div><div class="signature" id="yui_3_16_0_1_1446770599597_883093">Jim
</div></div></body></html>