2012-08-29 98 views
0

我有一個簡單的模型,女巫用作一種形式。如何添加照片

class Test(models.Model): 
    name = models.CharField(max_length=100, unique=True, db_index=True) 
    location = models.CharField(max_length=300) 
    details = models.TextField() 
    def __unicode__(self): 
     return self.image.name 

我想下面的類專輯作爲外鍵添加到測試:

class Album(models.Model): 
    title = models.CharField(max_length=60) 
    public = models.BooleanField(default=False) 
    def __unicode__(self): 
     return self.title 

class Tag(models.Model): 
    tag = models.CharField(max_length=50) 
    def __unicode__(self): 
     return self.tag 

class Image(models.Model): 
    title = models.CharField(max_length=60, blank=True, null=True) 
    image = models.FileField(upload_to="images/") 
    tags = models.ManyToManyField(Tag, blank=True) 
    albums = models.ManyToManyField(Album, blank=True) 
    created = models.DateTimeField(auto_now_add=True) 
    rating = models.IntegerField(default=50) 
    width = models.IntegerField(blank=True, null=True) 
    height = models.IntegerField(blank=True, null=True) 
    user = models.ForeignKey(User, null=True, blank=True) 
    def __unicode__(self): 
     return self.image.name 

問題:

  1. 如何類相冊添加爲FOREIGH關鍵類測試?

  2. 如何把這種關係放在窗體上? - 例如用戶正在選擇多個圖像進行上傳,從而產生與測試類相關的唯一相冊。

+1

什麼是測試模型的目的是什麼? –

回答

0

你的意思是這樣的外鍵

class Test(models.Model): 
    name = models.CharField(max_length=100, unique=True, db_index=True) 
    location = models.CharField(max_length=300) 
    details = models.TextField() 
    album = models.ForeignKey(Album, null=True, blank=True) 
    def __unicode__(self): 
     return self.name 
+0

Yeap,但第二個問題依然存在:) 2.如何將這種關係放在窗體上? - 例如用戶正在選擇多個圖像進行上傳,從而產生與測試類相關的唯一相冊。 – user1632928

+0

您使用內聯表單:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-formsets –

+0

@Chris Pratt 我無法使其工作。這個想法很簡單。我想有一個與外鍵相關的兩個模型。我設法按照給定的例子,但它不是我所期望的) 我希望用戶填充一些數據以用於測試和相冊,但畢竟所有的測試和相冊實例都應該在數據庫中進行連接。 也許有可能創建兩個forms.ModelForm的inlineformset_factory? – user1632928