スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    django ticket#1796(DBリレーション発見できない問題)の解決策?

    0
      djangoのDBリレーションでバグ!?の件、続きです。全然解決策じゃないかも?

      I'm not sure where everyone is on this but I figured it out for me so I thought I'd share:

      The problem is that the get_all_related_many_to_many_objects() caches itself, so if the many-to-many manager gets called before all the apps are loaded, any models in apps added afterwards won't be in that cache. I commented out the line that gets the cache so it has to re-cache each time, and it fixes the problem. Behold:

      def get_all_related_many_to_many_objects(self):
      try: # Try the cache first.
      return self.ham_sandwich
      #return self._all_related_many_to_many_objects
      except AttributeError:
      ...

      Since .ham_sandwich is never found it falls into the AttributeError? exception and re-caches. It then works as planned.

      The permanent fix, it seems to me, is to make it so that when a many-to-many is created, it clears the _all_related_many_to_many_objects of the _meta of the relation class, but I'm not sure exactly where best to do that.


      from other_app.models import Tag

      class Thing(models.Model):
      tag = models.ManyToManyField(Tag)

      del Tag._meta._all_related_many_to_many_objects

      2つの解決策(ハック?)が載っていました。
      開発版(svn)使ってる人で、悩んでいる人は結構いるとみた。

      で、私はというと、generic_viewを放棄し、自前でviews.pyを書いて、カスタムSQL(extra)を使ってます。
      この問題に関して公式アナウンスが出るまで、うっかりsvn up→サイトが死亡という状態は避けたいので。全然美しくないけど!(泣


      def entry(request, object_id):
      object = Entry.objects.get(id=object_id)
      ##tags = object.tags.all()
      tags = Tag.objects.extra(tables = ['myapp_entry_tags'],
      where=['myapp_entry_tags.tag_id = myapp_tag.id ¥
      AND myapp_entry_tags.entry_id=%s'],
      params=[object.id])
      return render_to_response("myapp/entry_detail.html",
      { 'object':object, 'tags':tags },
      context_instance=RequestContext(request))



      djangoの中の人、バグfix待ってます。。。がんばって!


      スポンサーサイト

      0

        • 2014.12.23 Tuesday
        • -
        • 14:30
        • -
        • -
        • -
        • -
        • by スポンサードリンク

        コメント
        コメントする








           
        この記事のトラックバックURL
        トラックバック

        PR

        calendar

        S M T W T F S
           1234
        567891011
        12131415161718
        19202122232425
        2627282930  
        << November 2017 >>

        twitter

        selected entries

        categories

        archives

        recent comment

        • 結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました
          プログラマー
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          ななうぇぶ
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • WindowsのPCで開発するphperがxhprofを使う方法
          ななうぇぶ
        • WindowsのPCで開発するphperがxhprofを使う方法
          川本
        • [バッドノウハウ]Symfony2で別テーブルの集計項目を一覧に含めたいとき
          よし
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          77web
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          ktz

        recent trackback

        • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
          常山日記
        • django対symfony 日本語メール送信(その1 symfony編)
          CPA-LABテクニカル
        • CodeIgniterでユーザー認証
          されどLAMPな日々
        • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
          常山日記
        • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
          サーバー用語集
        • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
          常山日記
        • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
          mitszoの日記
        • python多次元リストをsort(並べ替え)する方法?
          mitszoの日記
        • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
          Humming Via Kitchen
        • 日本語テキストをtruncate@django(Python全般にも??)
          常山日記

        recommend

        links

        profile

        search this site.

        others

        mobile

        qrcode

        powered

        無料ブログ作成サービス JUGEM