我有一個包含模型(用戶和書籍)的現有項目。我想將ManyToMany(M2M)字段添加到現有的模型書籍中,但syncbb命令不會執行此操作。django將ManyToMany字段/表添加到現有模式,related_name錯誤
詳情:書籍已經有一個映射到用戶的FK字段,並且我想添加一個也映射到用戶的新M2M字段(讀者)。如你所知,Django的syncdb只關心表,所以添加一個普通字段很容易,但M2M需要一個新的連接表(app_books_user),所以不應該將syncdb cmd添加到其他任何新表中?它爲本書的「賣家」字段創建了我的另一張連接表。
當我運行syncdb時,我最初收到一個錯誤,指示我使用'related_name'參數來幫助區分兩個用戶引用。我添加了這些。但是,當我再次運行syncdb時,它不會創建新的連接表(但它現在沒有錯誤)。當我通過Shell查看它時存在新字段,但不能使用它連接表不存在。我通過'sqlall'cmd查看了SQL代碼,它打印出新表的SQL,但沒有執行。
我錯過了什麼?我應該通過我的數據庫瀏覽器強制SQL(來自sqlall)嗎?這會有什麼影響嗎?代碼如下:
Models.py
from django.contrib.auth.models import User
class Seller(models.Model):
...
class Books(models.Model):
name=models.CharField(max_length=50)
author=models.ForeignKey(User, related_name='creator')
readers=models.ManyToManyField(User, blank=True, related_name='viewers')
sellers=models.ManyToManyField(Seller)
謝謝
我可以通過擴展用戶UserProfile和保留'讀者'在那裏解決這個問題。 – rich 2010-10-21 18:29:33