Latest posts on ModelForms topichttps://python.su/forum/topic/2218/2008-06-11T22:48:36+03:00Веб-технологии :: Django :: ModelForms
2008-06-11T22:48:36+03:00playpauseandstop13861<a href="http://www.djangoproject.com/documentation/model-api/#overriding-default-model-methods">Overriding default model methods</a><br/><blockquote>As explained in the database API docs, each model gets a few methods automatically — most notably, save() and delete(). You can override these methods to alter behavior.<br/><br/>A classic use-case for overriding the built-in methods is if you want something to happen whenever you save an object. For example:<br/><div class="code"><pre><span class="k">class</span> <span class="nc">Blog</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
<span class="n">name</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">tagline</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">do_something</span><span class="p">()</span>
<span class="nb">super</span><span class="p">(</span><span class="n">Blog</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> <span class="c"># Call the "real" save() method.</span>
<span class="n">do_something_else</span><span class="p">()</span>
</pre></div>You can also prevent saving:<br/><div class="code"><pre><span class="k">class</span> <span class="nc">Blog</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
<span class="n">name</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">tagline</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s">"Yoko Ono's blog"</span><span class="p">:</span>
<span class="k">return</span> <span class="c"># Yoko shall never have her own blog!</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">super</span><span class="p">(</span><span class="n">Blog</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> <span class="c"># Call the "real" save() method.</span>
</pre></div></blockquote>
Веб-технологии :: Django :: ModelForms
2008-06-11T21:58:53+03:00TimonOmsk13859Может я чего то не понимаю или не так делаю…<br/><br/>В общем проблема такая:<br/><br/>в общем я создаю форму из модели и в форме использую только 3 поля из модели<br/>когда данные формы обрабатываются мне нужно вставить их в базу, для этого я использую form.save()<br/>НО! Мне нужно вставить еще данные в те поля модели которые я не использую в форме, каким образом мне это сделать<br/><br/><br/>В общем я запутался и у меня ниче не получается :(