2009-06-24 50 views
0

所以我試圖做一個數據遷移,我從一個房地產應用程序的「列表」到我創建的新「列表」應用程序。django south ValueError:「你不能實例化存根模型」

我沒有startmigration這樣的:

python manage.py startmigration listings migrate_listings --freeze realestate 

創建一個空白的遷移,這是我填入此:

def forwards(self, orm): 
     "Write your forwards migration here" 
     for listing in orm['realestate.RealEstateListing'].objects.all(): 
      sub_type = orm.SubType.objects.get(slug_url=slugify(listing.listing_type.name)) 
      lt = orm.Listing(listing_type=sub_type.parent, 
          sub_type=sub_type, 
          expiration_date=listing.expiration_date, 
          title=listing.title, 
          slug_url = listing.slug_url, 
          description = listing.description, 
          contact_person=listing.contact_person, 
          secondary_contact=listing.secondary_contact, 
          address=listing.address, 
          location=listing.location, 
          price=listing.price, 
          pricing_option=listing.pricing_option, 
          display_picture=listing.display_picture, 
          image_gallery=listing.image_gallery, 
          date_added=listing.date_added, 
          status=listing.status, 
          featured_on_homepage=listing.featured_on_homepage, 
          ) 
      lt.save() 

      lt.features.clear() 
      for ft in listing.property_features.all: 
       lt.features.add(ft) 

      for cft in listing.community_features.all: 
       lt.features.add(cft) 

      lt.restrictions.clear()  
      for na in listing.not_allowed.all: 
       lt.restrictions.add(na) 

然而,當我運行遷移仍出現此錯誤:

whiney_method

ValueError(「你不能實例化存根模式l「)

從我的理解你不能訪問使用fakeorm的」存根「模型,但凍結額外的應用程序是不允許的。我如何去使用「存根」模型而不凍結它們?

回答

2

好吧,我回答了我自己的問題,因爲我是這裏唯一的django南部用戶。我必須自己弄明白。

我沒做什麼,凍結了上述遷移中所需的所有應用程序。因爲我沒有凍結它創建了存根模型。

凍結多個應用正確的語法是:

python manage.py startmigration listings migrate_listings --freeze realestate --freeze logistics --freeze media --freeze upload 

,之後一切正常!